> ## 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.

# Get or create device physical port config

> Gets a physical port layout for the specified device, components owned by that device and details about the port configuration validity. Map is instantiated if it doesn't currently exist as part of the call.



## OpenAPI

````yaml https://api2.rhombussystems.com/api/openapi/public.json post /api/component/getOrCreateDevicePhysicalPortConfig
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/getOrCreateDevicePhysicalPortConfig:
    post:
      tags:
        - Component Webservice
      summary: Get or create device physical port config
      description: >-
        Gets a physical port layout for the specified device, components owned
        by that device and details about the port configuration validity. Map is
        instantiated if it doesn't currently exist as part of the call.
      operationId: getOrCreateDevicePhysicalPortConfig
      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_GetOrCreateDevicePhysicalPortConfigWSRequest
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Component_GetOrCreateDevicePhysicalPortConfigWSResponse
          description: OK
components:
  schemas:
    Component_GetOrCreateDevicePhysicalPortConfigWSRequest:
      type: object
      properties:
        ownerDeviceUuid:
          type: string
          format: RUUID
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          nullable: true
    Component_GetOrCreateDevicePhysicalPortConfigWSResponse:
      type: object
      properties:
        detectedInvalidPortConfigs:
          type: array
          items:
            $ref: '#/components/schemas/InvalidPhysicalPortConfigType'
          nullable: true
        deviceComponents:
          type: array
          items:
            $ref: '#/components/schemas/BaseComponentType'
          nullable: true
        devicePhysicalPortConfig:
          $ref: '#/components/schemas/DevicePhysicalPortConfigType'
        supportedAperioLockModels:
          type: array
          items:
            $ref: '#/components/schemas/AperioLockModelEnum'
          nullable: true
        supportedSchlageApmFamilies:
          type: array
          items:
            $ref: '#/components/schemas/SchlageApmFamilyEnum'
          nullable: true
    InvalidPhysicalPortConfigType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        componentUuids:
          type: array
          items:
            type: string
            format: RUUID
            description: base 64 (url-safe) uuid string
            example: AAAAAAAAAAAAAAAAAAAAAA
            nullable: true
          nullable: true
          uniqueItems: true
        portNum:
          type: integer
          format: int32
          nullable: true
        reason:
          $ref: '#/components/schemas/InvalidPhysicalPortReasonEnumType'
    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/SchlageInputButton'
        - $ref: '#/components/schemas/AperioActivatorButton'
        - $ref: '#/components/schemas/AperioGateway'
        - $ref: '#/components/schemas/AperioDoorReader'
        - $ref: '#/components/schemas/AperioDoorExtension'
        - $ref: '#/components/schemas/AperioDoorRelay'
        - $ref: '#/components/schemas/AperioDoorPositionIndicator'
        - $ref: '#/components/schemas/AperioRs485Gateway'
        - $ref: '#/components/schemas/AperioRs485DoorReader'
        - $ref: '#/components/schemas/AperioRs485DoorRelay'
        - $ref: '#/components/schemas/AperioRs485DoorPositionIndicator'
        - $ref: '#/components/schemas/AperioRs485DoorRequestToExit'
        - $ref: '#/components/schemas/AperioRs485DoorExtension'
        - $ref: '#/components/schemas/SchlageRs485Gateway'
        - $ref: '#/components/schemas/SchlageRs485DoorReader'
        - $ref: '#/components/schemas/SchlageRs485DoorExtension'
        - $ref: '#/components/schemas/SchlageRs485DoorRelay'
        - $ref: '#/components/schemas/SchlageRs485DoorPositionIndicator'
        - $ref: '#/components/schemas/SchlageRs485DoorRequestToExit'
      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
    DevicePhysicalPortConfigType:
      type: object
      properties:
        boardMap:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/BoardPhysicalPortConfigType'
          nullable: true
        createdAtMillis:
          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
        updatedAtMillis:
          type: integer
          format: int64
          nullable: true
    AperioLockModelEnum:
      type: string
      description: >-
        What kind of lock this is. Stated because the protocol does not report
        it: Device Info gives a product class, which says what a device does
        rather than which model it is. A model the controller cannot drive is
        refused - it has to be V3 hardware, which is the only generation that
        reports a door mode, and it has to lock something.
      enum:
        - C100_V3
        - E100_V3
        - L100_V3
        - H100_V3
        - AU100_V3
        - IN100_V3_MC
        - G100_V3
        - KL100_V3
        - K100_V3_MC
        - KS100_V3_MC
        - ES100_V3_MC
        - DL100_V3_MC
        - DR100_V3_MC
        - R100_V3_MC
        - C100
        - C100_V2SE
        - E100
        - E100_V2SE
        - L100
        - PROFILE_N2_MORTISE
        - INCEPTA
        - A100
        - K100
        - K100DI
        - KS100
        - M100
        - R100
      example: IN100_V3_MC
    SchlageApmFamilyEnum:
      type: string
      description: >-
        Which family of Schlage lock this is. Stated because the protocol cannot
        be asked: the OEM code reply has no address in it, so a reply cannot be
        attributed to one lock. It decides how the lock's status bits are read.
      enum:
        - AD_WIRED
        - AD_WIRELESS
        - ENGAGE
        - RMRU
    InvalidPhysicalPortReasonEnumType:
      type: string
      enum:
        - NON_EXISTANT_COMPONENT_BOARD_NUM
        - NON_EXISTANT_COMPONENT_PORT_NUM
        - CONFLICTING_COMPONENT_PORT_TYPES
        - COMPONENT_PORT_TYPE_NOT_SUPPORTED_BY_PORT
        - MAX_COMPONENTS_PER_PORT_TYPE_EXCEEDED
    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
    SchlageInputButton:
      type: object
      allOf:
        - type: object
          properties:
            buttonType:
              $ref: '#/components/schemas/ButtonEnumType'
            gatewayRs485Address:
              type: integer
              format: int32
              nullable: true
            ipbFunction:
              $ref: '#/components/schemas/SchlageIpbFunctionEnum'
            mode:
              $ref: '#/components/schemas/ButtonModeEnum'
            port:
              $ref: '#/components/schemas/GenericRs485Port'
            rs485Address:
              type: integer
              format: int32
              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:
        - rs485Address
    AperioActivatorButton:
      type: object
      allOf:
        - type: object
          properties:
            activatorFunction:
              $ref: '#/components/schemas/AperioActivatorFunctionEnum'
            buttonType:
              $ref: '#/components/schemas/ButtonEnumType'
            eacAddress:
              type: integer
              format: int32
              nullable: true
            gatewayEacAddress:
              type: integer
              format: int32
              nullable: true
            mode:
              $ref: '#/components/schemas/ButtonModeEnum'
            port:
              $ref: '#/components/schemas/GenericRs485Port'
      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:
        - eacAddress
    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
    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
    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
    AperioRs485Gateway:
      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
        eacAddress:
          type: integer
          format: int32
          nullable: true
        hwVersion:
          type: array
          items:
            type: string
            format: byte
            nullable: true
          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/GenericRs485Port'
        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
    AperioRs485DoorReader:
      type: object
      allOf:
        - type: object
          properties:
            disableCardReader:
              type: boolean
              nullable: true
            disableKeypad:
              type: boolean
              nullable: true
            disableWaveToUnlock:
              type: boolean
              nullable: true
            disposition:
              $ref: '#/components/schemas/ReaderDispositionEnum'
            eacAddress:
              type: integer
              format: int32
              nullable: true
            gatewayEacAddress:
              type: integer
              format: int32
              nullable: true
            otherReaderUnlockAudioFeedbackEnabled:
              type: boolean
              nullable: true
            port:
              $ref: '#/components/schemas/GenericRs485Port'
            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
      required:
        - eacAddress
    AperioRs485DoorRelay:
      type: object
      allOf:
        - type: object
          properties:
            eacAddress:
              type: integer
              format: int32
              nullable: true
            gatewayEacAddress:
              type: integer
              format: int32
              nullable: true
            port:
              $ref: '#/components/schemas/GenericRs485Port'
            rateLimitingEnabled:
              type: boolean
              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
    AperioRs485DoorPositionIndicator:
      type: object
      allOf:
        - type: object
          properties:
            dpiType:
              $ref: '#/components/schemas/DoorPositionIndicatorEnumType'
            eacAddress:
              type: integer
              format: int32
              nullable: true
            gatewayEacAddress:
              type: integer
              format: int32
              nullable: true
            normalState:
              $ref: '#/components/schemas/NormalStateEnumType'
            port:
              $ref: '#/components/schemas/GenericRs485Port'
      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
    AperioRs485DoorRequestToExit:
      type: object
      allOf:
        - type: object
          properties:
            eacAddress:
              type: integer
              format: int32
              nullable: true
            gatewayEacAddress:
              type: integer
              format: int32
              nullable: true
            intentOnly:
              type: boolean
              nullable: true
            intentOnlyEvents:
              type: boolean
              nullable: true
            normalState:
              $ref: '#/components/schemas/NormalStateEnumType'
            port:
              $ref: '#/components/schemas/GenericRs485Port'
            rexType:
              $ref: '#/components/schemas/RequestToExitEnumType'
      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
    AperioRs485DoorExtension:
      type: object
      allOf:
        - type: object
          properties:
            eacAddress:
              type: integer
              format: int32
              nullable: true
            gatewayEacAddress:
              type: integer
              format: int32
              nullable: true
            model:
              $ref: '#/components/schemas/AperioLockModelEnum'
            port:
              $ref: '#/components/schemas/GenericRs485Port'
      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
    SchlageRs485Gateway:
      type: object
      properties:
        baseType:
          $ref: '#/components/schemas/ComponentBaseEnumType'
        baud:
          type: integer
          format: int32
          nullable: true
        createdAtMillis:
          type: integer
          format: int64
          nullable: true
        frameCheck:
          $ref: '#/components/schemas/Rs485FrameCheckEnum'
        hwVersion:
          type: string
          nullable: true
        model:
          type: string
          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/GenericRs485Port'
        portImmutable:
          type: boolean
          nullable: true
        rs485Address:
          type: integer
          format: int32
          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:
        - rs485Address
    SchlageRs485DoorReader:
      type: object
      allOf:
        - type: object
          properties:
            disableCardReader:
              type: boolean
              nullable: true
            disableKeypad:
              type: boolean
              nullable: true
            disableWaveToUnlock:
              type: boolean
              nullable: true
            disposition:
              $ref: '#/components/schemas/ReaderDispositionEnum'
            gatewayRs485Address:
              type: integer
              format: int32
              nullable: true
            otherReaderUnlockAudioFeedbackEnabled:
              type: boolean
              nullable: true
            port:
              $ref: '#/components/schemas/GenericRs485Port'
            readerType:
              $ref: '#/components/schemas/DoorReaderEnumType'
            remoteUnlockAudioFeedbackEnabled:
              type: boolean
              nullable: true
            rs485Address:
              type: integer
              format: int32
              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:
        - rs485Address
    SchlageRs485DoorExtension:
      type: object
      allOf:
        - type: object
          properties:
            apmFamily:
              $ref: '#/components/schemas/SchlageApmFamilyEnum'
            gatewayRs485Address:
              type: integer
              format: int32
              nullable: true
            port:
              $ref: '#/components/schemas/GenericRs485Port'
            rs485Address:
              type: integer
              format: int32
              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
    SchlageRs485DoorRelay:
      type: object
      allOf:
        - type: object
          properties:
            gatewayRs485Address:
              type: integer
              format: int32
              nullable: true
            port:
              $ref: '#/components/schemas/GenericRs485Port'
            relayType:
              $ref: '#/components/schemas/DoorRelayEnumType'
            rs485Address:
              type: integer
              format: int32
              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
    SchlageRs485DoorPositionIndicator:
      type: object
      allOf:
        - type: object
          properties:
            dpiType:
              $ref: '#/components/schemas/DoorPositionIndicatorEnumType'
            gatewayRs485Address:
              type: integer
              format: int32
              nullable: true
            normalState:
              $ref: '#/components/schemas/NormalStateEnumType'
            port:
              $ref: '#/components/schemas/GenericRs485Port'
            rs485Address:
              type: integer
              format: int32
              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
    SchlageRs485DoorRequestToExit:
      type: object
      allOf:
        - type: object
          properties:
            gatewayRs485Address:
              type: integer
              format: int32
              nullable: true
            intentOnly:
              type: boolean
              nullable: true
            intentOnlyEvents:
              type: boolean
              nullable: true
            normalState:
              $ref: '#/components/schemas/NormalStateEnumType'
            port:
              $ref: '#/components/schemas/GenericRs485Port'
            rexType:
              $ref: '#/components/schemas/RequestToExitEnumType'
            rs485Address:
              type: integer
              format: int32
              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
    ComponentBaseEnumType:
      type: string
      enum:
        - reader
        - dpi
        - relay
        - rex
        - aux
        - aperio
        - schlage
        - 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
        - CAMERA_THIRD_PARTY_NVR_MULTISENSOR
        - NVR_N100
        - CAMERA_R130
        - NVR_N500
        - CAMERA_R150
        - ROBOT_RC1
        - CAMERA_R210
        - CAMERA_R650
        - NVR_N550
        - NVR_N551
        - UNSPECIFIED
    ComponentEnumType:
      type: string
      enum:
        - RhombusOsdpDoorReader
        - OsdpDoorReader
        - WiegandDoorReader
        - IntegratedDoorPositionIndicator
        - IntegratedRequestToExit
        - IntegratedDoorRelay
        - IntegratedGenericRelay
        - IntegratedGenericInput
        - IntegratedGenericButton
        - SchlageInputButton
        - AperioActivatorButton
        - AperioGateway
        - AperioRs485Gateway
        - AperioDoorExtension
        - AperioDoorRelay
        - AperioDoorPositionIndicator
        - AperioDoorReader
        - AperioRs485DoorReader
        - AperioRs485DoorRelay
        - AperioRs485DoorPositionIndicator
        - AperioRs485DoorRequestToExit
        - AperioRs485DoorExtension
        - AperioDoorRequestToExit
        - SchlageRs485Gateway
        - SchlageRs485DoorExtension
        - SchlageRs485DoorRelay
        - SchlageRs485DoorPositionIndicator
        - SchlageRs485DoorReader
        - SchlageRs485DoorRequestToExit
    BoardPhysicalPortConfigType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        ownerHardwareType:
          $ref: '#/components/schemas/HardwareVariationEnum'
        portMap:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PhysicalPortType'
          nullable: true
    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
        - aperio_rs485
        - schlage_wireless
        - schlage_rs485
    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
        - schlage_rs485_input_button
        - aperio_rs485_activator_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'
    SchlageIpbFunctionEnum:
      type: string
      enum:
        - NONE
        - PRIVACY
    GenericRs485Port:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        portType:
          $ref: '#/components/schemas/GenericRs485PhysicalPortEnum'
    AperioActivatorFunctionEnum:
      type: string
      enum:
        - NONE
        - PRIVACY
    Rs485FrameCheckEnum:
      type: string
      description: >-
        Frame check for the line. Optional: the bytes do not indicate which is
        in use, and RSI recommends CRC, so that is the default.
      enum:
        - SCHLAGE_RSI_CRC
        - SCHLAGE_RSI_CHECKSUM
    PhysicalPortType:
      type: object
      properties:
        boardNum:
          type: integer
          format: int32
          nullable: true
        componentPortTypeUsageMap:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              format: RUUID
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              nullable: true
            nullable: true
          nullable: true
        label:
          type: string
          nullable: true
        portNum:
          type: integer
          format: int32
          nullable: true
        supportedPortTypes:
          type: array
          items:
            $ref: '#/components/schemas/PhysicalPortEnumType'
          nullable: true
          uniqueItems: true
    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
    GenericRs485PhysicalPortEnum:
      type: string
      enum:
        - RS485
    PhysicalPortEnumType:
      type: string
      enum:
        - GPIO_OUTPUT
        - GPIO_INPUT
        - GPIO_INPUT_SUPERVISED
        - RS485
        - WIEGAND_INPUT
        - WIEGAND_OUTPUT
        - 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

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.