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

# Retrieve a list of components owned by a Rhombus device

> Retrieve a list of components owned by a Rhombus device (i.e. DC20's device uuid)



## OpenAPI

````yaml https://api2.rhombussystems.com/api/openapi/public.json post /api/component/findComponentsByOwnerDevice
openapi: 3.0.1
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 API
  version: '1.0'
servers:
  - description: Production Server
    url: https://api2.rhombussystems.com
security:
  - ApiKeyAuth: []
paths:
  /api/component/findComponentsByOwnerDevice:
    post:
      tags:
        - Component Webservice
      summary: Retrieve a list of components owned by a Rhombus device
      description: >-
        Retrieve a list of components owned by a Rhombus device (i.e. DC20's
        device uuid)
      operationId: findComponentsByOwnerDevice
      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/Component_FindComponentsByOwnerDeviceWSRequest
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Component_FindComponentsByOwnerDeviceWSResponse
          description: OK
components:
  schemas:
    Component_FindComponentsByOwnerDeviceWSRequest:
      type: object
      properties:
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    Component_FindComponentsByOwnerDeviceWSResponse:
      type: object
      properties:
        components:
          type: array
          items:
            $ref: '#/components/schemas/BaseComponentType'
          nullable: true
    BaseComponentType:
      type: object
      discriminator:
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/RhombusOsdpDoorReaderType'
        - $ref: '#/components/schemas/OsdpDoorReaderType'
        - $ref: '#/components/schemas/WiegandDoorReaderType'
        - $ref: '#/components/schemas/IntegratedDoorPositionIndicatorType'
        - $ref: '#/components/schemas/IntegratedRequestToExitType'
        - $ref: '#/components/schemas/IntegratedDoorRelayType'
        - $ref: '#/components/schemas/IntegratedGenericRelayType'
        - $ref: '#/components/schemas/IntegratedGenericInputType'
        - $ref: '#/components/schemas/IntegratedGenericButtonType'
        - $ref: '#/components/schemas/AperioDoorReader'
        - $ref: '#/components/schemas/AperioGateway'
        - $ref: '#/components/schemas/AperioDoorExtension'
        - $ref: '#/components/schemas/AperioDoorRelay'
        - $ref: '#/components/schemas/AperioDoorPositionIndicator'
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        portImmutable:
          type: boolean
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    RhombusOsdpDoorReaderType:
      type: object
      properties:
        allowCredsDuringUnlock:
          type: boolean
          nullable: true
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        deviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        disableCardReader:
          type: boolean
          nullable: true
        disableKeypad:
          type: boolean
          nullable: true
        disableQrScanner:
          type: boolean
          nullable: true
        disableWaveToUnlock:
          type: boolean
          nullable: true
        disposition:
          $ref: '#/components/schemas/ReaderDispositionEnum'
        hardwareUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        osdpAddress:
          type: integer
          format: int32
          nullable: true
        otherReaderUnlockAudioFeedbackEnabled:
          type: boolean
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        port:
          $ref: '#/components/schemas/OsdpReaderPortType'
        portImmutable:
          type: boolean
          nullable: true
        readerType:
          $ref: '#/components/schemas/DoorReaderEnumType'
        remoteUnlockAudioFeedbackEnabled:
          type: boolean
          nullable: true
        serialNumber:
          type: string
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    OsdpDoorReaderType:
      type: object
      properties:
        allowUnencrypted:
          type: boolean
          nullable: true
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        disableCardReader:
          type: boolean
          nullable: true
        disableKeypad:
          type: boolean
          nullable: true
        disableWaveToUnlock:
          type: boolean
          nullable: true
        disposition:
          $ref: '#/components/schemas/ReaderDispositionEnum'
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        osdpAddress:
          type: integer
          format: int32
          nullable: true
        otherReaderUnlockAudioFeedbackEnabled:
          type: boolean
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        port:
          $ref: '#/components/schemas/OsdpReaderPortType'
        portImmutable:
          type: boolean
          nullable: true
        readerType:
          $ref: '#/components/schemas/DoorReaderEnumType'
        remoteUnlockAudioFeedbackEnabled:
          type: boolean
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    WiegandDoorReaderType:
      type: object
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        buzzerPort:
          $ref: '#/components/schemas/WiegandOutputPortType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        csnEndian:
          $ref: '#/components/schemas/WiegandCredentialEndianEnumType'
        d0Port:
          $ref: '#/components/schemas/WiegandDataPortType'
        d1Port:
          $ref: '#/components/schemas/WiegandDataPortType'
        disableCardReader:
          type: boolean
          nullable: true
        disableKeypad:
          type: boolean
          nullable: true
        disableWaveToUnlock:
          type: boolean
          nullable: true
        disposition:
          $ref: '#/components/schemas/ReaderDispositionEnum'
        gledPort:
          $ref: '#/components/schemas/WiegandOutputPortType'
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        otherReaderUnlockAudioFeedbackEnabled:
          type: boolean
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        portImmutable:
          type: boolean
          nullable: true
        readerType:
          $ref: '#/components/schemas/DoorReaderEnumType'
        remoteUnlockAudioFeedbackEnabled:
          type: boolean
          nullable: true
        rledPort:
          $ref: '#/components/schemas/WiegandOutputPortType'
        tamperPort:
          $ref: '#/components/schemas/WiegandInputPortType'
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    IntegratedDoorPositionIndicatorType:
      type: object
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        dpiType:
          $ref: '#/components/schemas/DoorPositionIndicatorEnumType'
        name:
          type: string
          nullable: true
        normalState:
          $ref: '#/components/schemas/NormalStateEnumType'
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        port:
          $ref: '#/components/schemas/DoorPositionIndicatorPortType'
        portImmutable:
          type: boolean
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    IntegratedRequestToExitType:
      type: object
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        intentOnly:
          type: boolean
          nullable: true
        intentOnlyEvents:
          type: boolean
          nullable: true
        name:
          type: string
          nullable: true
        normalState:
          $ref: '#/components/schemas/NormalStateEnumType'
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        port:
          $ref: '#/components/schemas/RequestToExitPortType'
        portImmutable:
          type: boolean
          nullable: true
        rexType:
          $ref: '#/components/schemas/RequestToExitEnumType'
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    IntegratedDoorRelayType:
      type: object
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        port:
          $ref: '#/components/schemas/DoorRelayPortType'
        portImmutable:
          type: boolean
          nullable: true
        rateLimitingEnabled:
          type: boolean
          nullable: true
        relayType:
          $ref: '#/components/schemas/DoorRelayEnumType'
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    IntegratedGenericRelayType:
      type: object
      properties:
        auxType:
          $ref: '#/components/schemas/AuxiliaryEnumType'
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        originator:
          $ref: '#/components/schemas/BaseEventOriginator'
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        port:
          $ref: '#/components/schemas/AuxiliaryRelayPortType'
        portImmutable:
          type: boolean
          nullable: true
        relayDurationSec:
          type: integer
          format: int32
          deprecated: true
          description: Deprecated, do not use.
          nullable: true
        stateChangedAtMillis:
          type: integer
          format: int64
          nullable: true
        steadyState:
          $ref: '#/components/schemas/GenericRelayStateEnumType'
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    IntegratedGenericInputType:
      type: object
      properties:
        auxType:
          $ref: '#/components/schemas/AuxiliaryEnumType'
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        name:
          type: string
          nullable: true
        normalState:
          $ref: '#/components/schemas/NormalStateEnumType'
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        port:
          $ref: '#/components/schemas/AuxiliaryInputPortType'
        portImmutable:
          type: boolean
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    IntegratedGenericButtonType:
      type: object
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        buttonType:
          $ref: '#/components/schemas/ButtonEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        mode:
          $ref: '#/components/schemas/ButtonModeEnum'
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        port:
          $ref: '#/components/schemas/ButtonPortType'
        portImmutable:
          type: boolean
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    AperioDoorReader:
      type: object
      allOf:
        - type: object
          properties:
            aperioDoorId:
              type: string
              nullable: true
            aperioGatewayId:
              type: array
              items:
                type: string
                format: byte
                nullable: true
              nullable: true
            disableCardReader:
              type: boolean
              nullable: true
            disableKeypad:
              type: boolean
              nullable: true
            disableWaveToUnlock:
              type: boolean
              nullable: true
            disposition:
              $ref: '#/components/schemas/ReaderDispositionEnum'
            otherReaderUnlockAudioFeedbackEnabled:
              type: boolean
              nullable: true
            readerType:
              $ref: '#/components/schemas/DoorReaderEnumType'
            remoteUnlockAudioFeedbackEnabled:
              type: boolean
              nullable: true
      nullable: true
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        portImmutable:
          type: boolean
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    AperioGateway:
      type: object
      properties:
        aperioGatewayId:
          type: array
          items:
            type: string
            format: byte
            nullable: true
          nullable: true
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        hwVersion:
          type: array
          items:
            type: string
            format: byte
            nullable: true
          nullable: true
        name:
          type: string
          nullable: true
        oemCode:
          type: string
          nullable: true
        oemGeneratedAtMs:
          type: integer
          format: int64
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        portImmutable:
          type: boolean
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    AperioDoorExtension:
      type: object
      allOf:
        - type: object
          properties:
            aperioDoorDeviceId:
              type: array
              items:
                type: string
                format: byte
                nullable: true
              nullable: true
            aperioDoorId:
              type: string
              nullable: true
            aperioGatewayId:
              type: array
              items:
                type: string
                format: byte
                nullable: true
              nullable: true
      nullable: true
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        portImmutable:
          type: boolean
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
      required:
        - aperioDoorDeviceId
        - aperioDoorId
        - aperioGatewayId
    AperioDoorRelay:
      type: object
      allOf:
        - type: object
          properties:
            aperioDoorId:
              type: string
              nullable: true
            aperioGatewayId:
              type: array
              items:
                type: string
                format: byte
                nullable: true
              nullable: true
            deviceId:
              type: array
              items:
                type: string
                format: byte
                nullable: true
              nullable: true
            relayType:
              $ref: '#/components/schemas/DoorRelayEnumType'
      nullable: true
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        portImmutable:
          type: boolean
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    AperioDoorPositionIndicator:
      type: object
      allOf:
        - type: object
          properties:
            aperioDoorId:
              type: string
              nullable: true
            aperioGatewayId:
              type: array
              items:
                type: string
                format: byte
                nullable: true
              nullable: true
            dpiType:
              $ref: '#/components/schemas/DoorPositionIndicatorEnumType'
            normalState:
              $ref: '#/components/schemas/NormalStateEnumType'
      nullable: true
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        name:
          type: string
          nullable: true
        orgUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        portImmutable:
          type: boolean
          nullable: true
        type:
          $ref: '#/components/schemas/ComponentEnumType'
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
        uuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    ComponentBaseEnumType:
      type: string
      enum:
        - reader
        - dpi
        - relay
        - rex
        - aux
        - aperio
        - button
    HardwareVariationEnum:
      type: string
      enum:
        - RASPBERRY_PI_3
        - CAMERA_R1
        - CAMERA_R2
        - CAMERA_R2_LONG_RANGE
        - CAMERA_R2_180
        - CAMERA_R3
        - CAMERA_R4
        - CAMERA_R100
        - CAMERA_R120
        - CAMERA_R170
        - CAMERA_R200
        - CAMERA_R500
        - CAMERA_R510
        - CAMERA_R520
        - CAMERA_R600
        - SENSOR_ASSET_TAG_T1
        - SENSOR_DOOR_D1
        - SENSOR_DOOR_D20
        - SENSOR_ENVIRONMENTAL_E1
        - SENSOR_ENVIRONMENTAL_E15
        - SENSOR_ENVIRONMENTAL_E2
        - SENSOR_MOTION_M1
        - SENSOR_MOTION_M15
        - GATEWAY_A1
        - GATEWAY_A100
        - GATEWAY_ENVIRONMENTAL_E50
        - CAMERA_R220
        - CAMERA_R230
        - CAMERA_R36S
        - CAMERA_R410
        - CAMERA_R540
        - CAMERA_R545
        - BADGE_READER_DR1
        - BADGE_READER_DR40
        - BADGE_READER_DR20
        - DOOR_CONTROLLER_DC1
        - DOOR_CONTROLLER_DC20
        - DOOR_CONTROLLER_DC10
        - ETHERNET_TESTER_ET1
        - IO_BOARD_TB1
        - BLE_BUTTON_B10
        - BLE_BUTTON_B15
        - CAMERA_THIRD_PARTY_RELAY
        - CAMERA_THIRD_PARTY_NVR
        - NVR_N100
        - CAMERA_R130
        - NVR_N500
        - CAMERA_R150
        - ROBOT_RC1
        - CAMERA_R210
        - CAMERA_R650
        - UNSPECIFIED
    ComponentEnumType:
      type: string
      enum:
        - RhombusOsdpDoorReader
        - OsdpDoorReader
        - WiegandDoorReader
        - IntegratedDoorPositionIndicator
        - IntegratedRequestToExit
        - IntegratedDoorRelay
        - IntegratedGenericRelay
        - IntegratedGenericInput
        - IntegratedGenericButton
        - AperioGateway
        - AperioDoorExtension
        - AperioDoorRelay
        - AperioDoorPositionIndicator
        - AperioDoorReader
        - AperioDoorRequestToExit
    ReaderDispositionEnum:
      type: string
      enum:
        - INGRESS
        - EGRESS
        - UNKNOWN
    OsdpReaderPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/OsdpPhysicalPortEnumType'
    DoorReaderEnumType:
      type: string
      enum:
        - wiegand
        - osdp
        - rhombus_osdp
        - aperio_wireless
    WiegandOutputPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/WiegandOutputPhysicalPortEnumType'
    WiegandCredentialEndianEnumType:
      type: string
      enum:
        - MSB
        - LSB
    WiegandDataPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/WiegandDataPhysicalPortEnumType'
    WiegandInputPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/WiegandInputPhysicalPortEnumType'
    DoorPositionIndicatorEnumType:
      type: string
      enum:
        - integrated
        - remote
    NormalStateEnumType:
      type: string
      enum:
        - 'NO'
        - NC
    DoorPositionIndicatorPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/DoorPositionIndicatorPhysicalPortEnumType'
        supervisionConfiguration:
          $ref: '#/components/schemas/PortSupervisionConfigurationType'
    RequestToExitPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/RequestToExitPhysicalPortEnumType'
        supervisionConfiguration:
          $ref: '#/components/schemas/PortSupervisionConfigurationType'
    RequestToExitEnumType:
      type: string
      enum:
        - integrated
        - remote
    DoorRelayPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/DoorRelayPhysicalPortEnumType'
    DoorRelayEnumType:
      type: string
      enum:
        - integrated
        - remote
    AuxiliaryEnumType:
      type: string
      enum:
        - integrated_generic_input
        - integrated_generic_relay
    BaseEventOriginator:
      type: object
      discriminator:
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/SupportAuthorityEventOriginator'
        - $ref: '#/components/schemas/ApiTokenEventOriginator'
        - $ref: '#/components/schemas/UserEventOriginator'
        - $ref: '#/components/schemas/RuleEventOriginator'
        - $ref: '#/components/schemas/ComponentCompositeEventOriginator'
        - $ref: '#/components/schemas/GuestPassEventOriginator'
        - $ref: '#/components/schemas/DeviceServiceEventOriginator'
      properties:
        type:
          $ref: '#/components/schemas/EventOriginatorEnum'
    AuxiliaryRelayPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/AuxiliaryRelayPhysicalPortEnumType'
    GenericRelayStateEnumType:
      type: string
      enum:
        - ACTIVE
        - INACTIVE
        - UNKNOWN
    AuxiliaryInputPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/AuxiliaryInputPhysicalPortEnumType'
        supervisionConfiguration:
          $ref: '#/components/schemas/PortSupervisionConfigurationType'
    ButtonEnumType:
      type: string
      enum:
        - integrated_generic_button
        - integrated_doorbell_button
    ButtonModeEnum:
      type: string
      description: Optional button mode configuration
      enum:
        - PANIC
        - PROGRAMMABLE
        - DOORBELL
        - NONE
    ButtonPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/ButtonPhysicalPortEnumType'
    OsdpPhysicalPortEnumType:
      type: string
      enum:
        - RS485
    WiegandOutputPhysicalPortEnumType:
      type: string
      enum:
        - WIEGAND_OUTPUT
    WiegandDataPhysicalPortEnumType:
      type: string
      enum:
        - WIEGAND_INPUT
    WiegandInputPhysicalPortEnumType:
      type: string
      enum:
        - WIEGAND_INPUT
        - GPIO_INPUT
    DoorPositionIndicatorPhysicalPortEnumType:
      type: string
      enum:
        - GPIO_INPUT
        - GPIO_INPUT_SUPERVISED
    PortSupervisionConfigurationType:
      type: object
      properties:
        mode:
          $ref: '#/components/schemas/SupervisionModeEnumType'
    RequestToExitPhysicalPortEnumType:
      type: string
      enum:
        - GPIO_INPUT
        - GPIO_INPUT_SUPERVISED
    DoorRelayPhysicalPortEnumType:
      type: string
      enum:
        - GPIO_OUTPUT
    SupportAuthorityEventOriginator:
      type: object
      allOf:
        - type: object
          properties:
            grantedToInternalEntityUuid:
              type: string
              format: RUUID
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              nullable: true
            grantedToName:
              type: string
              nullable: true
            supportAuthorityUuid:
              type: string
              format: RUUID
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              nullable: true
            supportUserEmail:
              type: string
              nullable: true
            supportUsername:
              type: string
              nullable: true
      nullable: true
      properties:
        type:
          $ref: '#/components/schemas/EventOriginatorEnum'
    ApiTokenEventOriginator:
      type: object
      allOf:
        - type: object
          properties:
            tokenName:
              type: string
              nullable: true
            tokenUuid:
              type: string
              format: RUUID
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              nullable: true
      nullable: true
      properties:
        type:
          $ref: '#/components/schemas/EventOriginatorEnum'
    UserEventOriginator:
      type: object
      allOf:
        - type: object
          properties:
            userEmail:
              type: string
              nullable: true
            userUuid:
              type: string
              format: RUUID
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              nullable: true
            username:
              type: string
              nullable: true
      nullable: true
      properties:
        type:
          $ref: '#/components/schemas/EventOriginatorEnum'
    RuleEventOriginator:
      type: object
      allOf:
        - type: object
          properties:
            ruleName:
              type: string
              nullable: true
            ruleUuid:
              type: string
              format: RUUID
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              nullable: true
      nullable: true
      properties:
        type:
          $ref: '#/components/schemas/EventOriginatorEnum'
    ComponentCompositeEventOriginator:
      type: object
      allOf:
        - type: object
          properties:
            componentCompositeName:
              type: string
              nullable: true
            componentCompositeUuid:
              type: string
              format: RUUID
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              nullable: true
            correlationId:
              type: string
              nullable: true
            eventUuid:
              type: string
              format: RUUID
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              nullable: true
            originator:
              $ref: '#/components/schemas/BaseEventOriginator'
      nullable: true
      properties:
        type:
          $ref: '#/components/schemas/EventOriginatorEnum'
    GuestPassEventOriginator:
      type: object
      allOf:
        - type: object
          properties:
            guestPassName:
              type: string
              nullable: true
            guestPassUuid:
              type: string
              format: RUUID
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              nullable: true
      nullable: true
      properties:
        type:
          $ref: '#/components/schemas/EventOriginatorEnum'
    DeviceServiceEventOriginator:
      type: object
      allOf:
        - type: object
          properties:
            deviceUuid:
              type: string
              format: RUUID
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              nullable: true
            serviceName:
              type: string
              nullable: true
      nullable: true
      properties:
        type:
          $ref: '#/components/schemas/EventOriginatorEnum'
    EventOriginatorEnum:
      type: string
      enum:
        - USER
        - SUPPORT_AUTHORITY
        - API_TOKEN
        - RULE
        - COMPONENT_COMPOSITE_EVENT
        - GUEST_PASS
        - DEVICE_SERVICE
        - UNKNOWN
    AuxiliaryRelayPhysicalPortEnumType:
      type: string
      enum:
        - GPIO_OUTPUT
    AuxiliaryInputPhysicalPortEnumType:
      type: string
      enum:
        - GPIO_INPUT
        - GPIO_INPUT_SUPERVISED
    ButtonPhysicalPortEnumType:
      type: string
      enum:
        - GPIO_INPUT
        - BUTTON_INPUT
    SupervisionModeEnumType:
      type: string
      enum:
        - CUT_DETECT
        - SHORT_DETECT
        - CUT_AND_SHORT_DETECT
  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

````