> ## Documentation index
> Fetch the complete documentation index at: https://developer.rhombus.com/llms.txt
> Use it to discover all available pages before exploring further.

# Get a device's config

> Get a device's config

```http
POST https://api2.rhombussystems.com/api/deviceconfig/getFacetedConfig
```

EU organizations send the same request to `https://api2.eu.rhombussystems.com`.

## Authentication and parameters

- `x-auth-apikey` (header, required): Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header set to `api-token` (or `partner-api-token` for partner endpoints).
- `Authorization` (header): instead of an API key, an OAuth access token (`Bearer <token>`) with the `read` scope.
- `x-auth-scheme` (header, string, default: `api-token`): Authentication scheme identifier. Use `api-token` or `partner-api-token` with the `x-auth-apikey` header, `api` or `partner-api` with `x-auth-apikey` plus a client certificate, `api-oauth-token` or `partner-api-oauth-token` with `x-auth-access-token`, and `federated-token` with `x-auth-ft`. A request with `Authorization: Bearer <token>` and no `x-auth-scheme` is treated as OAuth, and `federated-token` may also be sent as the `x-auth-scheme` and `x-auth-ft` query parameters. One of: `api-token`, `api`, `api-oauth-token`, `federated-token`, `partner-api-token`, `partner-api`, `partner-api-oauth-token`.
- `x-auth-org` (header, string<RUUID>): Client organization UUID (22-character RUUID), for partner credentials only. With it the call runs in that client organization with the partner support authority's role. Without it a partner credential runs as the partner organization, which outside the partner endpoints is deprecated (responses carry `Deprecation` and `Sunset: Tue, 05 Jan 2027 00:00:00 GMT`). A malformed value returns 400 `INVALID_AUTH_ORG`; a client organization the partner cannot access returns 403 `PARTNER_CLIENT_ACCESS_DENIED`.

## Request body

Content type: `application/json`. Request object for retrieving a device's configuration.

- `deviceUuid` (string<RUUID> | null): base 64 (url-safe) uuid string

## Response 200

OK. Content type: `application/json`

- `config` (object): Device's faceted user configuration
- `error` (boolean | null)
- `errorCode` (string | null): Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.
- `errorMsg` (string | null)
- `warningMsg` (string | null)

## Errors

Also 400, 401, 403, 429, 500, 503 with the standard error body (`errorCode`, `errorMsg`): https://developer.rhombus.com/errors

## OpenAPI

````yaml
openapi: 3.0.1
info:
  title: Rhombus API
  version: "1.0"
servers:
  - description: Production Server
    url: https://api2.rhombussystems.com
security:
  - ApiKeyAuth: []
paths:
  /api/deviceconfig/getFacetedConfig:
    post:
      description: Get a device's config
      operationId: getFacetedConfig
      parameters:
        - description: "Authentication scheme identifier. Use `api-token` or `partner-api-token` with the `x-auth-apikey` header, `api` or `partner-api` with `x-auth-apikey` plus a client certificate, `api-oauth-token` or `partner-api-oauth-token` with `x-auth-access-token`, and `federated-token` with `x-auth-ft`. A request with `Authorization: Bearer <token>` and no `x-auth-scheme` is treated as OAuth, and `federated-token` may also be sent as the `x-auth-scheme` and `x-auth-ft` query parameters."
          example: api-token
          in: header
          name: x-auth-scheme
          required: false
          schema:
            default: api-token
            enum:
              - api-token
              - api
              - api-oauth-token
              - federated-token
              - partner-api-token
              - partner-api
              - partner-api-oauth-token
            type: string
        - description: "Client organization UUID (22-character RUUID), for partner credentials only. With it the call runs in that client organization with the partner support authority's role. Without it a partner credential runs as the partner organization, which outside the partner endpoints is deprecated (responses carry `Deprecation` and `Sunset: Tue, 05 Jan 2027 00:00:00 GMT`). A malformed value returns 400 `INVALID_AUTH_ORG`; a client organization the partner cannot access returns 403 `PARTNER_CLIENT_ACCESS_DENIED`."
          in: header
          name: x-auth-org
          required: false
          schema:
            format: RUUID
            maxLength: 22
            minLength: 22
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Device_config_GetConfigWSRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Device_config_GetFacetedUserConfigWSResponse"
          description: OK
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "429":
          $ref: "#/components/responses/TooManyRequests"
        "500":
          $ref: "#/components/responses/InternalServerError"
        "503":
          $ref: "#/components/responses/ServiceUnavailable"
      security:
        - ApiKeyAuth: []
        - oauth2:
            - read
      summary: Get a device's config
      tags:
        - Device Config Webservice
components:
  schemas:
    Device_config_GetConfigWSRequest:
      description: Request object for retrieving a device's configuration.
      properties:
        deviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    Device_config_GetFacetedUserConfigWSResponse:
      description: Response object containing a device's faceted user configuration.
      properties:
        config:
          $ref: "#/components/schemas/Device_config_userconfig_ExternalReadableFacetedUserConfig"
        error:
          nullable: true
          type: boolean
        errorCode:
          description: Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.
          nullable: true
          type: string
        errorMsg:
          nullable: true
          type: string
        warningMsg:
          nullable: true
          type: string
      type: object
    Device_config_userconfig_ExternalReadableFacetedUserConfig:
      description: Device's faceted user configuration
      properties:
        audioFacetSettings:
          additionalProperties:
            $ref: "#/components/schemas/Device_config_settings_ExternalReadableAudioSettings"
          nullable: true
          type: object
        buttonSettings:
          $ref: "#/components/schemas/Device_config_settings_ExternalReadableButtonSettings"
        climateSettings:
          $ref: "#/components/schemas/ClimateSettings"
        deviceSettings:
          $ref: "#/components/schemas/Device_config_settings_ExternalReadableDeviceSettings"
        deviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        deviceVideoSettings:
          $ref: "#/components/schemas/Device_config_settings_ExternalReadableDeviceVideoSettings"
        doorControllerSettings:
          $ref: "#/components/schemas/Device_config_settings_ExternalReadableDoorControllerSettings"
        doorReaderSettings:
          $ref: "#/components/schemas/DoorReaderSettings"
        doorSensorSettings:
          $ref: "#/components/schemas/DoorSensorSettings"
        environmentalGatewaySettings:
          $ref: "#/components/schemas/EnvironmentalGatewaySettings"
        lastModified:
          format: int64
          nullable: true
          type: integer
        metricsAgentSettings:
          $ref: "#/components/schemas/MetricsAgentSettings"
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        robotSettings:
          $ref: "#/components/schemas/RobotSettings"
        tamperSettings:
          $ref: "#/components/schemas/TamperSettings"
        thirdPartyCameraSettings:
          $ref: "#/components/schemas/ThirdPartyCameraSettings"
        videoDoorbellSettings:
          $ref: "#/components/schemas/VideoDoorbellSettings"
        videoFacetSettings:
          additionalProperties:
            $ref: "#/components/schemas/Device_config_settings_ExternalReadableVideoSettings"
          nullable: true
          type: object
      type: object
    Device_config_settings_ExternalReadableAudioSettings:
      properties:
        audio_aec_via_software:
          nullable: true
          type: boolean
        audio_ai_disabled:
          nullable: true
          type: boolean
        audio_analysis_enabled:
          nullable: true
          type: boolean
        audio_external_mic_boost:
          format: int32
          nullable: true
          type: integer
        audio_external_mic_volume:
          format: int32
          nullable: true
          type: integer
        audio_external_speaker_volume:
          format: int32
          nullable: true
          type: integer
        audio_internal_mic_aec_enabled:
          nullable: true
          type: boolean
        audio_internal_mic_boost:
          format: int32
          nullable: true
          type: integer
        audio_internal_mic_volume:
          format: int32
          nullable: true
          type: integer
        audio_internal_speaker_volume:
          format: int32
          nullable: true
          type: integer
        audio_min_echo_amplitude:
          format: int32
          nullable: true
          type: integer
        audio_playback_gain_percent:
          format: int32
          nullable: true
          type: integer
        audio_record:
          nullable: true
          type: boolean
        audio_supported:
          nullable: true
          type: boolean
        audio_use_external_mic:
          nullable: true
          type: boolean
        audio_use_external_speaker:
          nullable: true
          type: boolean
        audio_use_internal_speaker:
          nullable: true
          type: boolean
        device_mic_enabled:
          nullable: true
          type: boolean
        device_near_audio_silenced:
          nullable: true
          type: boolean
        device_speaker_enabled:
          nullable: true
          type: boolean
        frontendEqualizerHighShelf:
          $ref: "#/components/schemas/FrontendEqualizerSettings"
        frontendEqualizerLowShelf:
          $ref: "#/components/schemas/FrontendEqualizerSettings"
        frontendEqualizerPeaking1:
          $ref: "#/components/schemas/FrontendEqualizerSettings"
        frontendEqualizerPeaking2:
          $ref: "#/components/schemas/FrontendEqualizerSettings"
        frontendEqualizerPeaking3:
          $ref: "#/components/schemas/FrontendEqualizerSettings"
        frontendNoiseSuppression:
          nullable: true
          type: boolean
      type: object
    FrontendEqualizerSettings:
      properties:
        frequency:
          format: int32
          nullable: true
          type: integer
        gain:
          format: int32
          nullable: true
          type: integer
        q:
          format: int32
          nullable: true
          type: integer
      type: object
    Device_config_settings_ExternalReadableButtonSettings:
      properties:
        button_emergency_onsite_contact:
          $ref: "#/components/schemas/EmergencyContact"
        button_test_mode_enabled:
          nullable: true
          type: boolean
      type: object
    EmergencyContact:
      properties:
        name:
          description: The name of the emergency contact.
          nullable: true
          type: string
        phoneNumber:
          description: The phone number for this emergency contact.
          nullable: true
          type: string
      required:
        - name
        - phoneNumber
      type: object
    ClimateSettings:
      properties:
        alert_window_minutes:
          format: int32
          nullable: true
          type: integer
        smoke_ai_threshold:
          format: float
          nullable: true
          type: number
        thc_ai_threshold:
          format: float
          nullable: true
          type: number
        vape_ai_threshold:
          format: float
          nullable: true
          type: number
      type: object
    Device_config_settings_ExternalReadableDeviceSettings:
      properties:
        ai_license_invalid:
          nullable: true
          type: boolean
        bandwidth_reports_disabled:
          nullable: true
          type: boolean
        cloud_ai_smart_crop_enabled:
          nullable: true
          type: boolean
        cloud_ai_stream_enabled:
          nullable: true
          type: boolean
        cloud_archive_days:
          format: int32
          nullable: true
          type: integer
        cloud_archive_upload_schedule:
          items:
            $ref: "#/components/schemas/WeeklyMinuteIntervalType"
          nullable: true
          type: array
        cloud_archive_upload_schedule_inverted:
          nullable: true
          type: boolean
        cloud_archive_upload_schedule_uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        core_event_upload_target:
          $ref: "#/components/schemas/UploadTargetEnum"
        firmware_dev_settings:
          additionalProperties:
            nullable: true
            type: string
          nullable: true
          type: object
        led_mode_blink_period_ms:
          format: int64
          nullable: true
          type: integer
        led_mode_when_active:
          $ref: "#/components/schemas/LEDModeEnum"
        led_mode_when_inactive:
          $ref: "#/components/schemas/LEDModeEnum"
        led_stealth_mode:
          nullable: true
          type: boolean
        lightweight_detection_disabled:
          nullable: true
          type: boolean
        live_license_invalid:
          nullable: true
          type: boolean
        max_event_duration_ms:
          format: int32
          nullable: true
          type: integer
        media_ttl_minutes:
          format: int32
          nullable: true
          type: integer
        on_demand_license_invalid:
          nullable: true
          type: boolean
        scanner_agent_disabled:
          nullable: true
          type: boolean
        snapshot_upload_target:
          $ref: "#/components/schemas/UploadTargetEnum"
        storage_target_free_megabytes:
          format: int32
          nullable: true
          type: integer
        storage_target_free_space_permyriad:
          format: int32
          nullable: true
          type: integer
        thumbstrip_upload_target:
          $ref: "#/components/schemas/UploadTargetEnum"
      type: object
    WeeklyMinuteIntervalType:
      properties:
        minuteOfWeekStart:
          format: int32
          nullable: true
          type: integer
        minuteOfWeekStop:
          format: int32
          nullable: true
          type: integer
      type: object
    UploadTargetEnum:
      enum:
        - "0"
        - "1"
        - "2"
      type: string
    LEDModeEnum:
      enum:
        - LED_OFF
        - LED_RED_SOLID
        - LED_GREEN_SOLID
        - LED_ORANGE_SOLID
        - LED_RED_BLINK
        - LED_GREEN_BLINK
        - LED_ORANGE_BLINK
        - LED_NORMAL
      type: string
    Device_config_settings_ExternalReadableDeviceVideoSettings:
      properties:
        alert_rate_limit_human_only:
          $ref: "#/components/schemas/BurstyRateLimit"
        alert_rate_limit_motion_only:
          $ref: "#/components/schemas/BurstyRateLimit"
        alert_rate_limit_vehicle_only:
          $ref: "#/components/schemas/BurstyRateLimit"
        ir_double_tap:
          nullable: true
          type: boolean
        ir_filter_mode:
          $ref: "#/components/schemas/IRModesEnum"
        ir_leds_mode:
          $ref: "#/components/schemas/IRModesEnum"
      type: object
    BurstyRateLimit:
      properties:
        base_interval_ms:
          format: int32
          nullable: true
          type: integer
        burst_token_generation_ms:
          format: int32
          nullable: true
          type: integer
        burst_token_initial_count:
          format: int32
          nullable: true
          type: integer
        burst_token_max_count:
          format: int32
          nullable: true
          type: integer
      type: object
    IRModesEnum:
      enum:
        - ON
        - OFF
        - AUTO
      type: string
    Device_config_settings_ExternalReadableDoorControllerSettings:
      properties:
        autocomponentize_readers:
          nullable: true
          type: boolean
        autoregister_readers:
          nullable: true
          type: boolean
        flip_display_orientation:
          nullable: true
          type: boolean
        mdns_advertise_enabled:
          nullable: true
          type: boolean
        mdns_discover_enabled:
          nullable: true
          type: boolean
        peer_address_mode:
          $ref: "#/components/schemas/PeerAddressModeEnum"
        peer_channel_mode:
          $ref: "#/components/schemas/PeerChannelModeEnum"
        pressure_switch_tamper_normally_open:
          nullable: true
          type: boolean
        proximity_sensor_tamper_disabled:
          nullable: true
          type: boolean
        proximity_sensor_tamper_distance_threshold:
          format: float
          nullable: true
          type: number
      type: object
    PeerAddressModeEnum:
      enum:
        - STRICT
        - HINT
      type: string
    PeerChannelModeEnum:
      enum:
        - DISABLED
        - PASSIVE
        - ENABLED
      type: string
    DoorReaderSettings:
      properties:
        dr_enable_audio_feedback:
          nullable: true
          type: boolean
        tof_max_distance:
          format: float
          nullable: true
          type: number
        tof_min_distance:
          format: float
          nullable: true
          type: number
        tof_min_signal_over_noise:
          format: float
          nullable: true
          type: number
      type: object
    DoorSensorSettings:
      properties:
        ajar_threshold_enabled:
          description: Option to Enabled or Disable the Ajar Threshold. Defaults to Disabled (False).
          nullable: true
          type: boolean
        ajar_threshold_sec:
          description: Threshold value for Door Sensor Ajar state. Defaults to 30s.
          format: int32
          nullable: true
          type: integer
      type: object
    EnvironmentalGatewaySettings:
      properties:
        data_measurement_interval_sec:
          format: int64
          nullable: true
          type: integer
        data_upload_interval_sec:
          format: int64
          nullable: true
          type: integer
        false_positive_confidence_threshold:
          format: float
          nullable: true
          type: number
        leak_detection_threshold:
          format: float
          nullable: true
          type: number
        leak_detector_present:
          nullable: true
          type: boolean
        moist_detection_threshold:
          format: float
          nullable: true
          type: number
        smoke_confidence_threshold:
          format: float
          nullable: true
          type: number
        smoke_thc_confidence_threshold:
          format: float
          nullable: true
          type: number
        smoke_tobacco_confidence_threshold:
          format: float
          nullable: true
          type: number
        vape_alert_backoff_sec:
          format: int64
          nullable: true
          type: integer
        vape_confidence_threshold:
          format: float
          nullable: true
          type: number
        vape_thc_confidence_threshold:
          format: float
          nullable: true
          type: number
      type: object
    MetricsAgentSettings:
      properties:
        batch_on:
          default: true
          nullable: true
          type: boolean
        batch_size:
          default: 100000
          format: int32
          maximum: 1000000
          minimum: 10000
          nullable: true
          type: integer
        count_flush_interval:
          default: 1
          format: int32
          minimum: 1
          nullable: true
          type: integer
        level:
          $ref: "#/components/schemas/MetricsLevelEnum"
        log_update_interval:
          default: 1800
          format: int32
          minimum: 1
          nullable: true
          type: integer
        server_flush_interval:
          default: 15
          format: int32
          minimum: 1
          nullable: true
          type: integer
      type: object
    MetricsLevelEnum:
      default: ESSENTIAL
      enum:
        - OFF
        - FILE
        - ESSENTIAL
        - BASIC
        - FULL
      type: string
    RobotSettings:
      properties:
        battery_recovered_threshold_pct:
          format: int32
          nullable: true
          type: integer
        home_latitude:
          format: double
          nullable: true
          type: number
        home_longitude:
          format: double
          nullable: true
          type: number
        low_battery_threshold_pct:
          format: int32
          nullable: true
          type: integer
        map_assigned_at_ms:
          format: int64
          nullable: true
          type: integer
        map_assignment_id:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        map_id:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        pose:
          $ref: "#/components/schemas/Pose"
        preferred_localization_engine:
          $ref: "#/components/schemas/RobotLocalizationEngineEnum"
      type: object
    Pose:
      properties:
        orientation:
          items:
            description: Serialized as [x, y, z, w]
            format: double
            type: number
          maxItems: 4
          minItems: 4
          nullable: true
          type: array
        position:
          items:
            description: Serialized as [x, y, z]
            format: double
            type: number
          maxItems: 3
          minItems: 3
          nullable: true
          type: array
      type: object
    RobotLocalizationEngineEnum:
      enum:
        - AMCL
        - RTABMAP
      type: string
    TamperSettings:
      properties:
        accelerometer_change_tamper_threshold:
          format: float
          nullable: true
          type: number
        accelerometer_disabled:
          nullable: true
          type: boolean
        pressure_switch_tamper_disabled:
          nullable: true
          type: boolean
      type: object
    ThirdPartyCameraSettings:
      properties:
        lens_role:
          $ref: "#/components/schemas/LensRoleEnum"
        onvif_ip:
          nullable: true
          type: string
        onvif_password:
          nullable: true
          type: string
        onvif_profiletoken:
          nullable: true
          type: string
        onvif_ptz_servicepath:
          nullable: true
          type: string
        onvif_username:
          nullable: true
          type: string
        ptz_engine:
          $ref: "#/components/schemas/CameraPTZEngineEnum"
        ptz_movement:
          $ref: "#/components/schemas/CameraPTZMovementEnum"
        ptz_translation_space:
          $ref: "#/components/schemas/CameraPTZTranslationSpaceEnum"
        zoom_max:
          format: double
          nullable: true
          type: number
        zoom_min:
          format: double
          nullable: true
          type: number
      type: object
    LensRoleEnum:
      enum:
        - VISIBLE
        - THERMAL
      type: string
    CameraPTZEngineEnum:
      enum:
        - DIGITAL
        - MECHANICAL
        - NONE
        - UNKNOWN
      type: string
    CameraPTZMovementEnum:
      enum:
        - RELATIVE
        - ABSOLUTE
      type: string
    CameraPTZTranslationSpaceEnum:
      enum:
        - FOV
        - DIGITAL
        - NONE
        - UNKNOWN
      type: string
    VideoDoorbellSettings:
      properties:
        standalone_doorbell_mode:
          nullable: true
          type: boolean
      type: object
    Device_config_settings_ExternalReadableVideoSettings:
      properties:
        ai_dewarp_config:
          $ref: "#/components/schemas/CameraAiDewarpConfigType"
        behavior_detection:
          nullable: true
          type: boolean
        blocked_debounce_time_ms:
          format: int32
          nullable: true
          type: integer
        blocked_threshold:
          format: float
          nullable: true
          type: number
        char_threshold:
          format: float
          nullable: true
          type: number
        color_detection:
          nullable: true
          type: boolean
        con_human_filter:
          format: int32
          nullable: true
          type: integer
        con_vehicle_filter:
          format: int32
          nullable: true
          type: integer
        cross_counting:
          nullable: true
          type: boolean
        cross_counting_settings:
          $ref: "#/components/schemas/CameraCrossCountingSettingsType"
        crossing_regions:
          items:
            $ref: "#/components/schemas/CameraCrossingRegionType"
          nullable: true
          type: array
        custom_events:
          nullable: true
          type: boolean
        dewarpMode:
          $ref: "#/components/schemas/CameraDewarpModeEnum"
        disabled_schedule:
          items:
            $ref: "#/components/schemas/WeeklyMinuteIntervalType"
          nullable: true
          type: array
        disabled_schedule_inverted:
          nullable: true
          type: boolean
        disabled_schedule_uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        dwell_reset_ttl_ms:
          format: int64
          nullable: true
          type: integer
        dwell_time_ms:
          format: int64
          nullable: true
          type: integer
        engagement_counting:
          nullable: true
          type: boolean
        exposure_level:
          format: int32
          nullable: true
          type: integer
        face_ai_threshold:
          format: float
          nullable: true
          type: number
        face_counting:
          nullable: true
          type: boolean
        face_counting_nonunique:
          nullable: true
          type: boolean
        face_id_ai_threshold:
          format: float
          nullable: true
          type: number
        face_match_threshold:
          format: float
          nullable: true
          type: number
        face_recognition:
          nullable: true
          type: boolean
        fisheye_display_mode:
          $ref: "#/components/schemas/FisheyeDisplayModeEnum"
        floorplan_homography:
          items:
            items:
              format: double
              nullable: true
              type: number
            nullable: true
            type: array
          nullable: true
          type: array
        h265_realtime_encoding_enabled:
          nullable: true
          type: boolean
        h265_vod_encoding_enabled:
          nullable: true
          type: boolean
        hdr_enabled:
          nullable: true
          type: boolean
        high_res_detection:
          nullable: true
          type: boolean
        human_detection:
          nullable: true
          type: boolean
        human_loitering:
          nullable: true
          type: boolean
        human_loitering_settings:
          $ref: "#/components/schemas/CameraHumanLoiteringSettingsType"
        img_brightness:
          format: int32
          nullable: true
          type: integer
        img_contrast:
          format: int32
          nullable: true
          type: integer
        img_saturation:
          format: int32
          nullable: true
          type: integer
        img_sharpness:
          format: int32
          nullable: true
          type: integer
        inactivity_settings:
          $ref: "#/components/schemas/CameraInactivitySettingsType"
        licenseplate_detection:
          nullable: true
          type: boolean
        lpr_ai_threshold:
          format: float
          nullable: true
          type: number
        max_detections_per_frame:
          format: int32
          nullable: true
          type: integer
        metering_config:
          $ref: "#/components/schemas/CameraMeteringConfigType"
        motion_grid_disabled:
          nullable: true
          type: boolean
        motion_grid_window_sec:
          format: int32
          nullable: true
          type: integer
        motion_lightweight_disabled:
          nullable: true
          type: boolean
        motion_threshold:
          format: float
          nullable: true
          type: number
        motor_config:
          $ref: "#/components/schemas/CameraMotorConfigType"
        mounting_direction:
          $ref: "#/components/schemas/CameraMountingDirectionEnum"
        new_motion_feature_flag:
          nullable: true
          type: boolean
        night_exposure_level:
          format: int32
          nullable: true
          type: integer
        night_img_brightness:
          format: int32
          nullable: true
          type: integer
        night_img_contrast:
          format: int32
          nullable: true
          type: integer
        night_img_saturation:
          format: int32
          nullable: true
          type: integer
        night_img_sharpness:
          format: int32
          nullable: true
          type: integer
        night_metering_config:
          $ref: "#/components/schemas/CameraMeteringConfigType"
        night_sensor_gain_max:
          format: int32
          nullable: true
          type: integer
        night_shutter_time_max:
          format: int32
          nullable: true
          type: integer
        night_shutter_time_min:
          format: int32
          nullable: true
          type: integer
        obj_ai_threshold:
          format: float
          nullable: true
          type: number
        object_search:
          nullable: true
          type: boolean
        occupancy_count_high_threshold:
          format: int32
          nullable: true
          type: integer
        occupancy_count_low_threshold:
          format: int32
          nullable: true
          type: integer
        occupancy_counting:
          nullable: true
          type: boolean
        people_counting:
          nullable: true
          type: boolean
        people_tracking:
          nullable: true
          type: boolean
        person_ai_threshold:
          format: float
          nullable: true
          type: number
        person_reidentification:
          nullable: true
          type: boolean
        pose_detection:
          nullable: true
          type: boolean
        ppe_detection:
          nullable: true
          type: boolean
        privacy_window_polygons:
          items:
            $ref: "#/components/schemas/RegionPolygonType"
          nullable: true
          type: array
        privacy_windows:
          items:
            $ref: "#/components/schemas/PermyriadRect"
          nullable: true
          type: array
        ptz_config:
          $ref: "#/components/schemas/CameraPTZConfigType"
        ptz_home:
          $ref: "#/components/schemas/CameraPtzHome"
        record_on_motion:
          nullable: true
          type: boolean
        region_for_occupancy:
          $ref: "#/components/schemas/RegionConfigType"
        region_of_interest:
          $ref: "#/components/schemas/RegionConfigType"
        region_of_interest_groups:
          items:
            $ref: "#/components/schemas/RegionOfInterestGroup"
          nullable: true
          type: array
        resolution:
          $ref: "#/components/schemas/Device_config_settings_ExternalVideoResolution"
        rotation:
          format: int32
          nullable: true
          type: integer
        rtsp_encoder:
          format: int32
          nullable: true
          type: integer
        segment_max_bytes:
          format: int32
          nullable: true
          type: integer
        sensor_gain_max:
          format: int32
          nullable: true
          type: integer
        shared_fov:
          items:
            description: RUUID with optional appended facet information
            example: AAAAAAAAAAAAAAAAAAAAAA.v0
            format: DeviceFacetUuid
            nullable: true
            type: string
          nullable: true
          type: array
        shutter_time_max:
          format: int32
          nullable: true
          type: integer
        shutter_time_min:
          format: int32
          nullable: true
          type: integer
        snapshot_height:
          format: int32
          nullable: true
          type: integer
        snapshot_interval_secs:
          format: int32
          nullable: true
          type: integer
        target_ai_fps:
          format: int32
          nullable: true
          type: integer
        thumbstrip_disabled:
          nullable: true
          type: boolean
        tile_views:
          items:
            $ref: "#/components/schemas/DewarpedView"
          nullable: true
          type: array
        timelapse:
          nullable: true
          type: boolean
        upload_all_detections:
          nullable: true
          type: boolean
        use_onboard_ai:
          nullable: true
          type: boolean
        use_onboard_lpr:
          nullable: true
          type: boolean
        use_pilot_face_id:
          nullable: true
          type: boolean
        vehicle_ai_threshold:
          format: float
          nullable: true
          type: number
        vehicle_counting:
          nullable: true
          type: boolean
        vehicle_detection:
          nullable: true
          type: boolean
        video_ai_disabled:
          nullable: true
          type: boolean
        video_persist_disabled:
          nullable: true
          type: boolean
        visual_tamper_config:
          $ref: "#/components/schemas/CameraVisualTamperConfigType"
        wdr_enabled:
          nullable: true
          type: boolean
        wdr_strength:
          format: int32
          nullable: true
          type: integer
        zero_motion_video_bitrate_percent:
          format: int32
          nullable: true
          type: integer
        zero_motion_video_quality:
          format: int32
          nullable: true
          type: integer
      type: object
    CameraAiDewarpConfigType:
      properties:
        dewarp_tile_height:
          format: int32
          nullable: true
          type: integer
        dewarp_tile_width:
          format: int32
          nullable: true
          type: integer
        orientation:
          format: int32
          nullable: true
          type: integer
      type: object
    CameraCrossCountingSettingsType:
      properties:
        directions:
          items:
            $ref: "#/components/schemas/CrossingDirectionEnum"
          nullable: true
          type: array
          uniqueItems: true
        in_roi:
          items:
            $ref: "#/components/schemas/RegionPolygonType"
          nullable: true
          type: array
        object_type:
          $ref: "#/components/schemas/CrossingObjectEnum"
        object_type_id:
          format: int32
          nullable: true
          type: integer
        out_roi:
          items:
            $ref: "#/components/schemas/RegionPolygonType"
          nullable: true
          type: array
      type: object
    CrossingDirectionEnum:
      enum:
        - INGRESS
        - EGRESS
      type: string
    RegionPolygonType:
      properties:
        coordinates:
          items:
            $ref: "#/components/schemas/RegionCoordinateType"
          nullable: true
          type: array
      type: object
    RegionCoordinateType:
      properties:
        x:
          format: float
          nullable: true
          type: number
        y:
          format: float
          nullable: true
          type: number
      type: object
    CrossingObjectEnum:
      enum:
        - HUMAN
        - VEHICLE
        - FACE
        - LPR
        - POSE
        - CLIP_EMBED
        - UNKNOWN
      type: string
    CameraCrossingRegionType:
      properties:
        directions:
          items:
            $ref: "#/components/schemas/CrossingDirectionEnum"
          nullable: true
          type: array
          uniqueItems: true
        enabled:
          nullable: true
          type: boolean
        in_roi:
          $ref: "#/components/schemas/RegionPolygonType"
        name:
          nullable: true
          type: string
        object_type:
          $ref: "#/components/schemas/CrossingObjectEnum"
        out_roi:
          $ref: "#/components/schemas/RegionPolygonType"
        uuid:
          nullable: true
          type: string
      type: object
    CameraDewarpModeEnum:
      enum:
        - NO_TRANSFORM
        - NORMAL
        - PANORAMA
        - SUB_REGION
        - VERTICAL_PANORAMA
        - TRANSVERSE_MERCATOR
        - MERCATOR
        - EQUIRECTANGULAR
      type: string
    FisheyeDisplayModeEnum:
      enum:
        - RAW
        - IMMERSIVE
        - TILES
        - RAW_PANO
      type: string
    CameraHumanLoiteringSettingsType:
      properties:
        roi:
          items:
            $ref: "#/components/schemas/RegionPolygonType"
          nullable: true
          type: array
      type: object
    CameraInactivitySettingsType:
      properties:
        object_type:
          $ref: "#/components/schemas/InactivityObjectTypeEnum"
        roi:
          $ref: "#/components/schemas/RegionPolygonType"
        threshold_ms:
          format: int64
          nullable: true
          type: integer
      type: object
    InactivityObjectTypeEnum:
      enum:
        - HUMAN
        - VEHICLE
      type: string
    CameraMeteringConfigType:
      properties:
        rotation:
          format: int32
          nullable: true
          type: integer
        table:
          nullable: true
          type: string
      type: object
    CameraMotorConfigType:
      properties:
        af_enabled:
          nullable: true
          type: boolean
        af_region:
          $ref: "#/components/schemas/PermyriadRect"
        focus:
          format: int32
          nullable: true
          type: integer
        pan_degrees:
          format: float
          nullable: true
          type: number
        piris:
          format: int32
          nullable: true
          type: integer
        pt_speed:
          format: int32
          nullable: true
          type: integer
        tilt_degrees:
          format: float
          nullable: true
          type: number
        zoom:
          format: int32
          nullable: true
          type: integer
      type: object
    PermyriadRect:
      properties:
        h:
          format: int32
          nullable: true
          type: integer
        size:
          format: int32
          nullable: true
          type: integer
        w:
          format: int32
          nullable: true
          type: integer
        x:
          format: int32
          nullable: true
          type: integer
        y:
          format: int32
          nullable: true
          type: integer
      type: object
    CameraMountingDirectionEnum:
      enum:
        - DOWN
        - UP
        - SIDEWAYS
        - UNKNOWN
      type: string
    CameraPTZConfigType:
      properties:
        offset_x_percent:
          format: float
          nullable: true
          type: number
        offset_y_percent:
          format: float
          nullable: true
          type: number
        rotation:
          format: int32
          nullable: true
          type: integer
        size_percent:
          format: float
          nullable: true
          type: number
      type: object
    CameraPtzHome:
      properties:
        go_home_seq:
          format: int64
          nullable: true
          type: integer
        pan_degrees:
          format: float
          nullable: true
          type: number
        tilt_degrees:
          format: float
          nullable: true
          type: number
        zoom:
          format: int32
          nullable: true
          type: integer
      type: object
    RegionConfigType:
      nullable: true
      properties:
        inverted:
          nullable: true
          type: boolean
        polygons:
          items:
            $ref: "#/components/schemas/RegionPolygonType"
          nullable: true
          type: array
      type: object
    RegionOfInterestGroup:
      properties:
        inclusive:
          description: If true, regions in this group include specified activities. If false, regions in this group exclude specified activities.
          nullable: true
          type: boolean
        regionsOfInterest:
          description: Regions of interest that belong to the group. Group must have at least one region specified.
          items:
            $ref: "#/components/schemas/RegionOfInterest"
          nullable: true
          type: array
        scheduleUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/RegionOfInterestGroupTypeEnum"
      type: object
    RegionOfInterest:
      description: Regions of interest that belong to the group. Group must have at least one region specified.
      properties:
        activities:
          description: Region of allowed or disallowed activities. Activities are allowed if region group is inclusive. Activities are disallowed if region group is exclusive. Region must have at least one activity specified.
          items:
            $ref: "#/components/schemas/ActivityEnum"
          nullable: true
          type: array
          uniqueItems: true
        name:
          nullable: true
          type: string
        polygon:
          $ref: "#/components/schemas/RegionPolygonType"
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    ActivityEnum:
      enum:
        - SOUND_LOUD
        - SOUND_GUN_SHOT
        - TAMPER
        - VISUAL_TAMPER
        - MOTION_TAMPER
        - MOTION
        - MOTION_HUMAN
        - MOTION_CAR
        - MOTION_ANIMAL
        - MOTION_PACKAGE
        - PACKAGE_ARRIVED
        - PACKAGE_DEPARTED
        - 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_LOCKDOWN_PLAN_SWITCHED
        - 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
        - AC_SCHLAGE_GW_DISCONNECTED
        - AC_SCHLAGE_GW_CONNECTED
        - AC_SCHLAGE_APM_DISCONNECTED
        - AC_SCHLAGE_APM_CONNECTED
        - AC_SCHLAGE_LOW_BATTERY
        - AC_SCHLAGE_CRITICAL_BATTERY
        - AC_SCHLAGE_OK_BATTERY
        - POWER_SWITCH_BATTERY
        - POWER_SWITCH_PRIMARY
        - AI_SEARCH_MATCH
        - AI_SEARCH_MATCH_PERSON_SMOKING
        - AI_SEARCH_MATCH_PERSON_ON_PHONE
        - AI_SEARCH_MATCH_PERSON_FALLING
        - 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
        - INACTIVITY_HUMAN
        - INACTIVITY_CAR
        - GROUP_ENTRY
        - 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
      type: string
    RegionOfInterestGroupTypeEnum:
      description: Represents type of activity regions in the group. Defaults to 'Activity'.
      enum:
        - ACTIVITY
        - REPORTING
        - CROSSING
        - ALARM_MONITORING
        - UNKNOWN
      type: string
    Device_config_settings_ExternalVideoResolution:
      properties:
        height:
          format: int32
          nullable: true
          type: integer
        width:
          format: int32
          nullable: true
          type: integer
      type: object
    DewarpedView:
      properties:
        aspectRatio:
          $ref: "#/components/schemas/AspectRatio"
        pitchDegrees:
          format: float
          nullable: true
          type: number
        rollDegrees:
          format: float
          nullable: true
          type: number
        verticalFieldOfViewDegrees:
          format: int32
          nullable: true
          type: integer
        yawDegrees:
          format: float
          nullable: true
          type: number
      type: object
    AspectRatio:
      properties:
        height:
          format: int32
          nullable: true
          type: integer
        width:
          format: int32
          nullable: true
          type: integer
      type: object
    CameraVisualTamperConfigType:
      properties:
        analyze_fps:
          format: int32
          nullable: true
          type: integer
        analyze_res:
          format: int32
          nullable: true
          type: integer
        canny_thresh:
          format: float
          nullable: true
          type: number
        edge_cov_diff_thresh:
          format: float
          nullable: true
          type: number
        enabled:
          nullable: true
          type: boolean
        long_buf_size:
          format: int32
          nullable: true
          type: integer
        short_buf_size:
          format: int32
          nullable: true
          type: integer
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header set to `api-token` (or `partner-api-token` for partner endpoints).
      in: header
      name: x-auth-apikey
      type: apiKey
    oauth2:
      description: 'OAuth 2.0 authorization code flow with PKCE (`S256`). Send the access token as `Authorization: Bearer <token>`. Each operation lists the scopes it requires; a token without them is refused 403 with `WWW-Authenticate: Bearer error="insufficient_scope"`.'
      flows:
        authorizationCode:
          authorizationUrl: https://console.rhombus.com/oauth/authorize
          refreshUrl: https://auth-web.rhombussystems.com/oauth/token
          scopes:
            physical: Unlock doors and elevators, lockdown, alarms, speakers and robots
            read: View cameras, footage and settings
            write: Change settings and data
          tokenUrl: https://auth-web.rhombussystems.com/oauth/token
      type: oauth2
````
