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

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

```http
POST https://api2.rhombussystems.com/api/component/getOrCreateDevicePhysicalPortConfig
```

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

## Authentication and parameters

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

## Request body

Content type: `application/json`

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

## Response 200

OK. Content type: `application/json`

- `detectedInvalidPortConfigs` (array<object> | null)
- `deviceComponents` (array<object> | null)
- `devicePhysicalPortConfig` (object)
- `supportedAperioLockModels` (array<string> | null)
- `supportedSchlageApmFamilies` (array<string> | null)

## Errors

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

## OpenAPI

````yaml
openapi: 3.0.1
info:
  title: Rhombus API
  version: "1.0"
servers:
  - description: Production Server
    url: https://api2.rhombussystems.com
security:
  - ApiKeyAuth: []
paths:
  /api/component/getOrCreateDevicePhysicalPortConfig:
    post:
      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` or `partner-api-token` with the `x-auth-apikey` header, `api` or `partner-api` with `x-auth-apikey` plus a client certificate, `api-oauth-token` or `partner-api-oauth-token` with `x-auth-access-token`, and `federated-token` with `x-auth-ft`. A request with `Authorization: Bearer <token>` and no `x-auth-scheme` is treated as OAuth, and `federated-token` may also be sent as the `x-auth-scheme` and `x-auth-ft` query parameters."
          example: api-token
          in: header
          name: x-auth-scheme
          required: false
          schema:
            default: api-token
            enum:
              - api-token
              - api
              - api-oauth-token
              - federated-token
              - partner-api-token
              - partner-api
              - partner-api-oauth-token
            type: string
        - description: "Client organization UUID (22-character RUUID), for partner credentials only. With it the call runs in that client organization with the partner support authority's role. Without it a partner credential runs as the partner organization, which outside the partner endpoints is deprecated (responses carry `Deprecation` and `Sunset: Tue, 05 Jan 2027 00:00:00 GMT`). A malformed value returns 400 `INVALID_AUTH_ORG`; a client organization the partner cannot access returns 403 `PARTNER_CLIENT_ACCESS_DENIED`."
          in: header
          name: x-auth-org
          required: false
          schema:
            format: RUUID
            maxLength: 22
            minLength: 22
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Component_GetOrCreateDevicePhysicalPortConfigWSRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Component_GetOrCreateDevicePhysicalPortConfigWSResponse"
          description: OK
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "429":
          $ref: "#/components/responses/TooManyRequests"
        "500":
          $ref: "#/components/responses/InternalServerError"
        "503":
          $ref: "#/components/responses/ServiceUnavailable"
      security:
        - ApiKeyAuth: []
        - oauth2:
            - read
      summary: Get or create device physical port config
      tags:
        - Component Webservice
components:
  schemas:
    Component_GetOrCreateDevicePhysicalPortConfigWSRequest:
      properties:
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    Component_GetOrCreateDevicePhysicalPortConfigWSResponse:
      properties:
        detectedInvalidPortConfigs:
          items:
            $ref: "#/components/schemas/InvalidPhysicalPortConfigType"
          nullable: true
          type: array
        deviceComponents:
          items:
            $ref: "#/components/schemas/BaseComponentType"
          nullable: true
          type: array
        devicePhysicalPortConfig:
          $ref: "#/components/schemas/DevicePhysicalPortConfigType"
        supportedAperioLockModels:
          items:
            $ref: "#/components/schemas/AperioLockModelEnum"
          nullable: true
          type: array
        supportedSchlageApmFamilies:
          items:
            $ref: "#/components/schemas/SchlageApmFamilyEnum"
          nullable: true
          type: array
      type: object
    InvalidPhysicalPortConfigType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        componentUuids:
          items:
            description: base 64 (url-safe) uuid string
            example: AAAAAAAAAAAAAAAAAAAAAA
            format: RUUID
            nullable: true
            type: string
          nullable: true
          type: array
          uniqueItems: true
        portNum:
          format: int32
          nullable: true
          type: integer
        reason:
          $ref: "#/components/schemas/InvalidPhysicalPortReasonEnumType"
      type: object
    InvalidPhysicalPortReasonEnumType:
      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
      type: string
    BaseComponentType:
      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:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    RhombusOsdpDoorReaderType:
      properties:
        allowCredsDuringUnlock:
          nullable: true
          type: boolean
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        deviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        disableCardReader:
          nullable: true
          type: boolean
        disableKeypad:
          nullable: true
          type: boolean
        disableQrScanner:
          nullable: true
          type: boolean
        disableWaveToUnlock:
          nullable: true
          type: boolean
        disposition:
          $ref: "#/components/schemas/ReaderDispositionEnum"
        hardwareUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        osdpAddress:
          format: int32
          nullable: true
          type: integer
        otherReaderUnlockAudioFeedbackEnabled:
          nullable: true
          type: boolean
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        port:
          $ref: "#/components/schemas/OsdpReaderPortType"
        portImmutable:
          nullable: true
          type: boolean
        readerType:
          $ref: "#/components/schemas/DoorReaderEnumType"
        remoteUnlockAudioFeedbackEnabled:
          nullable: true
          type: boolean
        serialNumber:
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    ComponentBaseEnumType:
      enum:
        - reader
        - dpi
        - relay
        - rex
        - aux
        - aperio
        - schlage
        - button
      type: string
    ReaderDispositionEnum:
      enum:
        - INGRESS
        - EGRESS
        - UNKNOWN
      type: string
    HardwareVariationEnum:
      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
        - ROBOT_RC2
        - UNSPECIFIED
      type: string
    OsdpReaderPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/OsdpPhysicalPortEnumType"
      type: object
    OsdpPhysicalPortEnumType:
      enum:
        - RS485
      type: string
    DoorReaderEnumType:
      enum:
        - wiegand
        - osdp
        - rhombus_osdp
        - aperio_wireless
        - aperio_rs485
        - schlage_wireless
        - schlage_rs485
      type: string
    ComponentEnumType:
      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
      type: string
    OsdpDoorReaderType:
      properties:
        allowUnencrypted:
          nullable: true
          type: boolean
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        disableCardReader:
          nullable: true
          type: boolean
        disableKeypad:
          nullable: true
          type: boolean
        disableWaveToUnlock:
          nullable: true
          type: boolean
        disposition:
          $ref: "#/components/schemas/ReaderDispositionEnum"
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        osdpAddress:
          format: int32
          nullable: true
          type: integer
        otherReaderUnlockAudioFeedbackEnabled:
          nullable: true
          type: boolean
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        port:
          $ref: "#/components/schemas/OsdpReaderPortType"
        portImmutable:
          nullable: true
          type: boolean
        readerType:
          $ref: "#/components/schemas/DoorReaderEnumType"
        remoteUnlockAudioFeedbackEnabled:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    WiegandDoorReaderType:
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        buzzerPort:
          $ref: "#/components/schemas/WiegandOutputPortType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        csnEndian:
          $ref: "#/components/schemas/WiegandCredentialEndianEnumType"
        d0Port:
          $ref: "#/components/schemas/WiegandDataPortType"
        d1Port:
          $ref: "#/components/schemas/WiegandDataPortType"
        disableCardReader:
          nullable: true
          type: boolean
        disableKeypad:
          nullable: true
          type: boolean
        disableWaveToUnlock:
          nullable: true
          type: boolean
        disposition:
          $ref: "#/components/schemas/ReaderDispositionEnum"
        gledPort:
          $ref: "#/components/schemas/WiegandOutputPortType"
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        otherReaderUnlockAudioFeedbackEnabled:
          nullable: true
          type: boolean
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        readerType:
          $ref: "#/components/schemas/DoorReaderEnumType"
        remoteUnlockAudioFeedbackEnabled:
          nullable: true
          type: boolean
        rledPort:
          $ref: "#/components/schemas/WiegandOutputPortType"
        tamperPort:
          $ref: "#/components/schemas/WiegandInputPortType"
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    WiegandOutputPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/WiegandOutputPhysicalPortEnumType"
      type: object
    WiegandOutputPhysicalPortEnumType:
      enum:
        - WIEGAND_OUTPUT
      type: string
    WiegandCredentialEndianEnumType:
      enum:
        - MSB
        - LSB
      type: string
    WiegandDataPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/WiegandDataPhysicalPortEnumType"
      type: object
    WiegandDataPhysicalPortEnumType:
      enum:
        - WIEGAND_INPUT
      type: string
    WiegandInputPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/WiegandInputPhysicalPortEnumType"
      type: object
    WiegandInputPhysicalPortEnumType:
      enum:
        - WIEGAND_INPUT
        - GPIO_INPUT
      type: string
    IntegratedDoorPositionIndicatorType:
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        dpiType:
          $ref: "#/components/schemas/DoorPositionIndicatorEnumType"
        name:
          nullable: true
          type: string
        normalState:
          $ref: "#/components/schemas/NormalStateEnumType"
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        port:
          $ref: "#/components/schemas/DoorPositionIndicatorPortType"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    DoorPositionIndicatorEnumType:
      enum:
        - integrated
        - remote
      type: string
    NormalStateEnumType:
      enum:
        - NO
        - NC
      type: string
    DoorPositionIndicatorPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/DoorPositionIndicatorPhysicalPortEnumType"
        supervisionConfiguration:
          $ref: "#/components/schemas/PortSupervisionConfigurationType"
      type: object
    DoorPositionIndicatorPhysicalPortEnumType:
      enum:
        - GPIO_INPUT
        - GPIO_INPUT_SUPERVISED
      type: string
    PortSupervisionConfigurationType:
      properties:
        mode:
          $ref: "#/components/schemas/SupervisionModeEnumType"
      type: object
    SupervisionModeEnumType:
      enum:
        - CUT_DETECT
        - SHORT_DETECT
        - CUT_AND_SHORT_DETECT
      type: string
    IntegratedRequestToExitType:
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        intentOnly:
          nullable: true
          type: boolean
        intentOnlyEvents:
          nullable: true
          type: boolean
        name:
          nullable: true
          type: string
        normalState:
          $ref: "#/components/schemas/NormalStateEnumType"
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        port:
          $ref: "#/components/schemas/RequestToExitPortType"
        portImmutable:
          nullable: true
          type: boolean
        rexType:
          $ref: "#/components/schemas/RequestToExitEnumType"
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    RequestToExitPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/RequestToExitPhysicalPortEnumType"
        supervisionConfiguration:
          $ref: "#/components/schemas/PortSupervisionConfigurationType"
      type: object
    RequestToExitPhysicalPortEnumType:
      enum:
        - GPIO_INPUT
        - GPIO_INPUT_SUPERVISED
      type: string
    RequestToExitEnumType:
      enum:
        - integrated
        - remote
      type: string
    IntegratedDoorRelayType:
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        port:
          $ref: "#/components/schemas/DoorRelayPortType"
        portImmutable:
          nullable: true
          type: boolean
        rateLimitingEnabled:
          nullable: true
          type: boolean
        relayType:
          $ref: "#/components/schemas/DoorRelayEnumType"
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    DoorRelayPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/DoorRelayPhysicalPortEnumType"
      type: object
    DoorRelayPhysicalPortEnumType:
      enum:
        - GPIO_OUTPUT
      type: string
    DoorRelayEnumType:
      enum:
        - integrated
        - remote
      type: string
    IntegratedGenericRelayType:
      properties:
        auxType:
          $ref: "#/components/schemas/AuxiliaryEnumType"
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        originator:
          $ref: "#/components/schemas/BaseEventOriginator"
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        port:
          $ref: "#/components/schemas/AuxiliaryRelayPortType"
        portImmutable:
          nullable: true
          type: boolean
        relayDurationSec:
          deprecated: true
          description: Deprecated, do not use.
          format: int32
          nullable: true
          type: integer
        stateChangedAtMillis:
          format: int64
          nullable: true
          type: integer
        steadyState:
          $ref: "#/components/schemas/GenericRelayStateEnumType"
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AuxiliaryEnumType:
      enum:
        - integrated_generic_input
        - integrated_generic_relay
      type: string
    BaseEventOriginator:
      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:
        auditPrincipal:
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/EventOriginatorEnum"
      type: object
    SupportAuthorityEventOriginator:
      allOf:
        - properties:
            grantedToInternalEntityUuid:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
            grantedToName:
              nullable: true
              type: string
            supportAuthorityUuid:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
            supportUserEmail:
              nullable: true
              type: string
            supportUsername:
              nullable: true
              type: string
          type: object
      nullable: true
      properties:
        auditPrincipal:
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/EventOriginatorEnum"
      type: object
    EventOriginatorEnum:
      enum:
        - USER
        - SUPPORT_AUTHORITY
        - API_TOKEN
        - RULE
        - COMPONENT_COMPOSITE_EVENT
        - GUEST_PASS
        - DEVICE_SERVICE
        - UNKNOWN
      type: string
    ApiTokenEventOriginator:
      allOf:
        - properties:
            tokenName:
              nullable: true
              type: string
            tokenUuid:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
          type: object
      nullable: true
      properties:
        auditPrincipal:
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/EventOriginatorEnum"
      type: object
    UserEventOriginator:
      allOf:
        - properties:
            userEmail:
              nullable: true
              type: string
            userUuid:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
            username:
              nullable: true
              type: string
          type: object
      nullable: true
      properties:
        auditPrincipal:
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/EventOriginatorEnum"
      type: object
    RuleEventOriginator:
      allOf:
        - properties:
            ruleName:
              nullable: true
              type: string
            ruleUuid:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
          type: object
      nullable: true
      properties:
        auditPrincipal:
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/EventOriginatorEnum"
      type: object
    ComponentCompositeEventOriginator:
      allOf:
        - properties:
            componentCompositeName:
              nullable: true
              type: string
            componentCompositeUuid:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
            correlationId:
              nullable: true
              type: string
            eventUuid:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
            originator:
              $ref: "#/components/schemas/BaseEventOriginator"
          type: object
      nullable: true
      properties:
        auditPrincipal:
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/EventOriginatorEnum"
      type: object
    GuestPassEventOriginator:
      allOf:
        - properties:
            guestPassName:
              nullable: true
              type: string
            guestPassUuid:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
          type: object
      nullable: true
      properties:
        auditPrincipal:
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/EventOriginatorEnum"
      type: object
    DeviceServiceEventOriginator:
      allOf:
        - properties:
            deviceUuid:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
            serviceName:
              nullable: true
              type: string
          type: object
      nullable: true
      properties:
        auditPrincipal:
          nullable: true
          type: string
        type:
          $ref: "#/components/schemas/EventOriginatorEnum"
      type: object
    AuxiliaryRelayPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/AuxiliaryRelayPhysicalPortEnumType"
      type: object
    AuxiliaryRelayPhysicalPortEnumType:
      enum:
        - GPIO_OUTPUT
      type: string
    GenericRelayStateEnumType:
      enum:
        - ACTIVE
        - INACTIVE
        - UNKNOWN
      type: string
    IntegratedGenericInputType:
      properties:
        auxType:
          $ref: "#/components/schemas/AuxiliaryEnumType"
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        normalState:
          $ref: "#/components/schemas/NormalStateEnumType"
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        port:
          $ref: "#/components/schemas/AuxiliaryInputPortType"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AuxiliaryInputPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/AuxiliaryInputPhysicalPortEnumType"
        supervisionConfiguration:
          $ref: "#/components/schemas/PortSupervisionConfigurationType"
      type: object
    AuxiliaryInputPhysicalPortEnumType:
      enum:
        - GPIO_INPUT
        - GPIO_INPUT_SUPERVISED
      type: string
    IntegratedGenericButtonType:
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        buttonType:
          $ref: "#/components/schemas/ButtonEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        mode:
          $ref: "#/components/schemas/ButtonModeEnum"
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        port:
          $ref: "#/components/schemas/ButtonPortType"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    ButtonEnumType:
      enum:
        - integrated_generic_button
        - integrated_doorbell_button
        - schlage_rs485_input_button
        - aperio_rs485_activator_button
      type: string
    ButtonModeEnum:
      description: Optional button mode configuration
      enum:
        - PANIC
        - PROGRAMMABLE
        - DOORBELL
        - NONE
      type: string
    ButtonPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/ButtonPhysicalPortEnumType"
      type: object
    ButtonPhysicalPortEnumType:
      enum:
        - GPIO_INPUT
        - BUTTON_INPUT
      type: string
    SchlageInputButton:
      allOf:
        - properties:
            buttonType:
              $ref: "#/components/schemas/ButtonEnumType"
            gatewayRs485Address:
              format: int32
              nullable: true
              type: integer
            ipbFunction:
              $ref: "#/components/schemas/SchlageIpbFunctionEnum"
            mode:
              $ref: "#/components/schemas/ButtonModeEnum"
            port:
              $ref: "#/components/schemas/GenericRs485Port"
            rs485Address:
              format: int32
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      required:
        - rs485Address
      type: object
    SchlageIpbFunctionEnum:
      enum:
        - NONE
        - PRIVACY
      type: string
    GenericRs485Port:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        portNum:
          format: int32
          nullable: true
          type: integer
        portType:
          $ref: "#/components/schemas/GenericRs485PhysicalPortEnum"
      type: object
    GenericRs485PhysicalPortEnum:
      enum:
        - RS485
      type: string
    AperioActivatorButton:
      allOf:
        - properties:
            activatorFunction:
              $ref: "#/components/schemas/AperioActivatorFunctionEnum"
            buttonType:
              $ref: "#/components/schemas/ButtonEnumType"
            eacAddress:
              format: int32
              nullable: true
              type: integer
            gatewayEacAddress:
              format: int32
              nullable: true
              type: integer
            mode:
              $ref: "#/components/schemas/ButtonModeEnum"
            port:
              $ref: "#/components/schemas/GenericRs485Port"
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      required:
        - eacAddress
      type: object
    AperioActivatorFunctionEnum:
      enum:
        - NONE
        - PRIVACY
      type: string
    AperioGateway:
      properties:
        aperioGatewayId:
          items:
            format: byte
            nullable: true
            type: string
          nullable: true
          type: array
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        hwVersion:
          items:
            format: byte
            nullable: true
            type: string
          nullable: true
          type: array
        name:
          nullable: true
          type: string
        oemCode:
          nullable: true
          type: string
        oemGeneratedAtMs:
          format: int64
          nullable: true
          type: integer
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AperioDoorReader:
      allOf:
        - properties:
            aperioDoorId:
              nullable: true
              type: string
            aperioGatewayId:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
            disableCardReader:
              nullable: true
              type: boolean
            disableKeypad:
              nullable: true
              type: boolean
            disableWaveToUnlock:
              nullable: true
              type: boolean
            disposition:
              $ref: "#/components/schemas/ReaderDispositionEnum"
            otherReaderUnlockAudioFeedbackEnabled:
              nullable: true
              type: boolean
            readerType:
              $ref: "#/components/schemas/DoorReaderEnumType"
            remoteUnlockAudioFeedbackEnabled:
              nullable: true
              type: boolean
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AperioDoorExtension:
      allOf:
        - properties:
            aperioDoorDeviceId:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
            aperioDoorId:
              nullable: true
              type: string
            aperioGatewayId:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      required:
        - aperioDoorDeviceId
        - aperioDoorId
        - aperioGatewayId
      type: object
    AperioDoorRelay:
      allOf:
        - properties:
            aperioDoorId:
              nullable: true
              type: string
            aperioGatewayId:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
            deviceId:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
            relayType:
              $ref: "#/components/schemas/DoorRelayEnumType"
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AperioDoorPositionIndicator:
      allOf:
        - properties:
            aperioDoorId:
              nullable: true
              type: string
            aperioGatewayId:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
            dpiType:
              $ref: "#/components/schemas/DoorPositionIndicatorEnumType"
            normalState:
              $ref: "#/components/schemas/NormalStateEnumType"
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AperioRs485Gateway:
      properties:
        aperioGatewayId:
          items:
            format: byte
            nullable: true
            type: string
          nullable: true
          type: array
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        eacAddress:
          format: int32
          nullable: true
          type: integer
        hwVersion:
          items:
            format: byte
            nullable: true
            type: string
          nullable: true
          type: array
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        port:
          $ref: "#/components/schemas/GenericRs485Port"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AperioRs485DoorReader:
      allOf:
        - properties:
            disableCardReader:
              nullable: true
              type: boolean
            disableKeypad:
              nullable: true
              type: boolean
            disableWaveToUnlock:
              nullable: true
              type: boolean
            disposition:
              $ref: "#/components/schemas/ReaderDispositionEnum"
            eacAddress:
              format: int32
              nullable: true
              type: integer
            gatewayEacAddress:
              format: int32
              nullable: true
              type: integer
            otherReaderUnlockAudioFeedbackEnabled:
              nullable: true
              type: boolean
            port:
              $ref: "#/components/schemas/GenericRs485Port"
            readerType:
              $ref: "#/components/schemas/DoorReaderEnumType"
            remoteUnlockAudioFeedbackEnabled:
              nullable: true
              type: boolean
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      required:
        - eacAddress
      type: object
    AperioRs485DoorRelay:
      allOf:
        - properties:
            eacAddress:
              format: int32
              nullable: true
              type: integer
            gatewayEacAddress:
              format: int32
              nullable: true
              type: integer
            port:
              $ref: "#/components/schemas/GenericRs485Port"
            rateLimitingEnabled:
              nullable: true
              type: boolean
            relayType:
              $ref: "#/components/schemas/DoorRelayEnumType"
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AperioRs485DoorPositionIndicator:
      allOf:
        - properties:
            dpiType:
              $ref: "#/components/schemas/DoorPositionIndicatorEnumType"
            eacAddress:
              format: int32
              nullable: true
              type: integer
            gatewayEacAddress:
              format: int32
              nullable: true
              type: integer
            normalState:
              $ref: "#/components/schemas/NormalStateEnumType"
            port:
              $ref: "#/components/schemas/GenericRs485Port"
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AperioRs485DoorRequestToExit:
      allOf:
        - properties:
            eacAddress:
              format: int32
              nullable: true
              type: integer
            gatewayEacAddress:
              format: int32
              nullable: true
              type: integer
            intentOnly:
              nullable: true
              type: boolean
            intentOnlyEvents:
              nullable: true
              type: boolean
            normalState:
              $ref: "#/components/schemas/NormalStateEnumType"
            port:
              $ref: "#/components/schemas/GenericRs485Port"
            rexType:
              $ref: "#/components/schemas/RequestToExitEnumType"
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AperioRs485DoorExtension:
      allOf:
        - properties:
            eacAddress:
              format: int32
              nullable: true
              type: integer
            gatewayEacAddress:
              format: int32
              nullable: true
              type: integer
            model:
              $ref: "#/components/schemas/AperioLockModelEnum"
            port:
              $ref: "#/components/schemas/GenericRs485Port"
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    AperioLockModelEnum:
      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
      type: string
    SchlageRs485Gateway:
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        baud:
          format: int32
          nullable: true
          type: integer
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        frameCheck:
          $ref: "#/components/schemas/Rs485FrameCheckEnum"
        hwVersion:
          nullable: true
          type: string
        model:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        port:
          $ref: "#/components/schemas/GenericRs485Port"
        portImmutable:
          nullable: true
          type: boolean
        rs485Address:
          format: int32
          nullable: true
          type: integer
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      required:
        - rs485Address
      type: object
    Rs485FrameCheckEnum:
      enum:
        - SCHLAGE_RSI_CRC
        - SCHLAGE_RSI_CHECKSUM
      type: string
    SchlageRs485DoorReader:
      allOf:
        - properties:
            disableCardReader:
              nullable: true
              type: boolean
            disableKeypad:
              nullable: true
              type: boolean
            disableWaveToUnlock:
              nullable: true
              type: boolean
            disposition:
              $ref: "#/components/schemas/ReaderDispositionEnum"
            gatewayRs485Address:
              format: int32
              nullable: true
              type: integer
            otherReaderUnlockAudioFeedbackEnabled:
              nullable: true
              type: boolean
            port:
              $ref: "#/components/schemas/GenericRs485Port"
            readerType:
              $ref: "#/components/schemas/DoorReaderEnumType"
            remoteUnlockAudioFeedbackEnabled:
              nullable: true
              type: boolean
            rs485Address:
              format: int32
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      required:
        - rs485Address
      type: object
    SchlageRs485DoorExtension:
      allOf:
        - properties:
            apmFamily:
              $ref: "#/components/schemas/SchlageApmFamilyEnum"
            gatewayRs485Address:
              format: int32
              nullable: true
              type: integer
            port:
              $ref: "#/components/schemas/GenericRs485Port"
            rs485Address:
              format: int32
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    SchlageApmFamilyEnum:
      enum:
        - AD_WIRED
        - AD_WIRELESS
        - ENGAGE
        - RMRU
      type: string
    SchlageRs485DoorRelay:
      allOf:
        - properties:
            gatewayRs485Address:
              format: int32
              nullable: true
              type: integer
            port:
              $ref: "#/components/schemas/GenericRs485Port"
            relayType:
              $ref: "#/components/schemas/DoorRelayEnumType"
            rs485Address:
              format: int32
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    SchlageRs485DoorPositionIndicator:
      allOf:
        - properties:
            dpiType:
              $ref: "#/components/schemas/DoorPositionIndicatorEnumType"
            gatewayRs485Address:
              format: int32
              nullable: true
              type: integer
            normalState:
              $ref: "#/components/schemas/NormalStateEnumType"
            port:
              $ref: "#/components/schemas/GenericRs485Port"
            rs485Address:
              format: int32
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    SchlageRs485DoorRequestToExit:
      allOf:
        - properties:
            gatewayRs485Address:
              format: int32
              nullable: true
              type: integer
            intentOnly:
              nullable: true
              type: boolean
            intentOnlyEvents:
              nullable: true
              type: boolean
            normalState:
              $ref: "#/components/schemas/NormalStateEnumType"
            port:
              $ref: "#/components/schemas/GenericRs485Port"
            rexType:
              $ref: "#/components/schemas/RequestToExitEnumType"
            rs485Address:
              format: int32
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        baseType:
          $ref: "#/components/schemas/ComponentBaseEnumType"
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        name:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portImmutable:
          nullable: true
          type: boolean
        type:
          $ref: "#/components/schemas/ComponentEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
      type: object
    DevicePhysicalPortConfigType:
      properties:
        boardMap:
          additionalProperties:
            $ref: "#/components/schemas/BoardPhysicalPortConfigType"
          nullable: true
          type: object
        createdAtMillis:
          format: int64
          nullable: true
          type: integer
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        ownerDeviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    BoardPhysicalPortConfigType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        ownerHardwareType:
          $ref: "#/components/schemas/HardwareVariationEnum"
        portMap:
          additionalProperties:
            $ref: "#/components/schemas/PhysicalPortType"
          nullable: true
          type: object
      type: object
    PhysicalPortType:
      properties:
        boardNum:
          format: int32
          nullable: true
          type: integer
        componentPortTypeUsageMap:
          additionalProperties:
            items:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
            nullable: true
            type: array
          nullable: true
          type: object
        label:
          nullable: true
          type: string
        portNum:
          format: int32
          nullable: true
          type: integer
        supportedPortTypes:
          items:
            $ref: "#/components/schemas/PhysicalPortEnumType"
          nullable: true
          type: array
          uniqueItems: true
      type: object
    PhysicalPortEnumType:
      enum:
        - GPIO_OUTPUT
        - GPIO_INPUT
        - GPIO_INPUT_SUPERVISED
        - RS485
        - WIEGAND_INPUT
        - WIEGAND_OUTPUT
        - BUTTON_INPUT
      type: string
  securitySchemes:
    ApiKeyAuth:
      description: Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header set to `api-token` (or `partner-api-token` for partner endpoints).
      in: header
      name: x-auth-apikey
      type: apiKey
    oauth2:
      description: 'OAuth 2.0 authorization code flow with PKCE (`S256`). Send the access token as `Authorization: Bearer <token>`. Each operation lists the scopes it requires; a token without them is refused 403 with `WWW-Authenticate: Bearer error="insufficient_scope"`.'
      flows:
        authorizationCode:
          authorizationUrl: https://console.rhombus.com/oauth/authorize
          refreshUrl: https://auth-web.rhombussystems.com/oauth/token
          scopes:
            physical: Unlock doors and elevators, lockdown, alarms, speakers and robots
            read: View cameras, footage and settings
            write: Change settings and data
          tokenUrl: https://auth-web.rhombussystems.com/oauth/token
      type: oauth2
````
