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

# Retrieve all component shadows for the components belonging to the specified component composites

> Retrieve all component shadows for the components belonging to the specified component composites (doors, elevators, elevator landings). Each composite is expanded to its component references and the resulting set of component shadows is returned.

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

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`

- `componentCompositeUuids` (array<string<RUUID> | null> | null)

## Response 200

OK. Content type: `application/json`

- `componentShadowMap` (map<string, object> | 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/findComponentShadowsByComponentComposites:
    post:
      description: Retrieve all component shadows for the components belonging to the specified component composites (doors, elevators, elevator landings). Each composite is expanded to its component references and the resulting set of component shadows is returned.
      operationId: findComponentShadowsByComponentComposites
      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_FindComponentShadowsByComponentCompositesWSRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Component_FindComponentShadowsByComponentCompositesWSResponse"
          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: Retrieve all component shadows for the components belonging to the specified component composites
      tags:
        - Component Webservice
components:
  schemas:
    Component_FindComponentShadowsByComponentCompositesWSRequest:
      properties:
        componentCompositeUuids:
          items:
            description: base 64 (url-safe) uuid string
            example: AAAAAAAAAAAAAAAAAAAAAA
            format: RUUID
            nullable: true
            type: string
          nullable: true
          type: array
          uniqueItems: true
      type: object
    Component_FindComponentShadowsByComponentCompositesWSResponse:
      properties:
        componentShadowMap:
          additionalProperties:
            $ref: "#/components/schemas/ComponentShadowType"
          nullable: true
          type: object
      type: object
    ComponentShadowType:
      discriminator:
        propertyName: type
      oneOf:
        - $ref: "#/components/schemas/DoorReaderShadowType"
        - $ref: "#/components/schemas/DoorRelayShadowType"
        - $ref: "#/components/schemas/DoorPositionIndicatorShadowType"
        - $ref: "#/components/schemas/RequestToExitShadowType"
        - $ref: "#/components/schemas/GenericInputShadowType"
        - $ref: "#/components/schemas/IntegratedDoorRelayType"
        - $ref: "#/components/schemas/GenericRelayShadowType"
        - $ref: "#/components/schemas/GenericButtonShadowType"
        - $ref: "#/components/schemas/AperioGatewayShadow"
        - $ref: "#/components/schemas/AperioDoorExtensionShadow"
        - $ref: "#/components/schemas/SchlageGatewayShadow"
        - $ref: "#/components/schemas/SchlageDoorExtensionShadow"
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    DoorReaderShadowType:
      allOf:
        - properties:
            state:
              $ref: "#/components/schemas/DoorReaderStateEnumType"
            stateUpdateEventTimestampMs:
              format: int64
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    DoorReaderStateEnumType:
      enum:
        - CONNECTED
        - DISCONNECTED
        - UNKNOWN
      type: string
    ComponentShadowEnumType:
      enum:
        - DoorReaderShadow
        - DoorRelayShadow
        - DoorPositionIndicatorShadow
        - RequestToExitShadow
        - GenericRelayShadow
        - GenericInputShadow
        - GenericButtonShadow
        - AperioGatewayShadow
        - AperioDoorExtensionShadow
        - SchlageGatewayShadow
        - SchlageDoorExtensionShadow
      type: string
    DoorRelayShadowType:
      allOf:
        - properties:
            state:
              $ref: "#/components/schemas/DoorRelayStateEnumType"
            stateUpdateEventTimestampMs:
              format: int64
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    DoorRelayStateEnumType:
      enum:
        - UNLOCKED
        - LOCKED
        - UNKNOWN
      type: string
    DoorPositionIndicatorShadowType:
      allOf:
        - properties:
            state:
              $ref: "#/components/schemas/DoorPositionIndicatorStateEnumType"
            stateUpdateEventTimestampMs:
              format: int64
              nullable: true
              type: integer
            supervisionState:
              $ref: "#/components/schemas/SupervisionStateEnumType"
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    DoorPositionIndicatorStateEnumType:
      enum:
        - OPEN
        - CLOSED
        - AJAR
        - FORCED_OPEN
        - ERROR
        - UNKNOWN
      type: string
    SupervisionStateEnumType:
      enum:
        - CUT_DETECTED
        - SHORT_DETECTED
        - NORMAL
        - INVALID
        - UNKNOWN
      type: string
    RequestToExitShadowType:
      allOf:
        - properties:
            state:
              $ref: "#/components/schemas/RequestToExitStateEnumType"
            stateUpdateEventTimestampMs:
              format: int64
              nullable: true
              type: integer
            supervisionState:
              $ref: "#/components/schemas/SupervisionStateEnumType"
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    RequestToExitStateEnumType:
      enum:
        - ACTIVE
        - INACTIVE
        - UNKNOWN
      type: string
    GenericInputShadowType:
      allOf:
        - properties:
            state:
              $ref: "#/components/schemas/GenericInputStateEnumType"
            stateUpdateEventTimestampMs:
              format: int64
              nullable: true
              type: integer
            supervisionState:
              $ref: "#/components/schemas/SupervisionStateEnumType"
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    GenericInputStateEnumType:
      enum:
        - ACTIVE
        - INACTIVE
        - UNKNOWN
      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
    ComponentBaseEnumType:
      enum:
        - reader
        - dpi
        - relay
        - rex
        - aux
        - aperio
        - schlage
        - button
      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
    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
    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
    GenericRelayShadowType:
      allOf:
        - properties:
            originator:
              $ref: "#/components/schemas/BaseEventOriginator"
            state:
              $ref: "#/components/schemas/GenericRelayStateEnumType"
            stateUpdateEventTimestampMs:
              format: int64
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    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
    GenericRelayStateEnumType:
      enum:
        - ACTIVE
        - INACTIVE
        - UNKNOWN
      type: string
    GenericButtonShadowType:
      allOf:
        - properties:
            state:
              $ref: "#/components/schemas/GenericButtonStateEnumType"
            stateUpdateEventTimestampMs:
              format: int64
              nullable: true
              type: integer
            supervisionState:
              $ref: "#/components/schemas/SupervisionStateEnumType"
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    GenericButtonStateEnumType:
      enum:
        - BUTTON_DOWN
        - BUTTON_UP
        - UNKNOWN
      type: string
    AperioGatewayShadow:
      allOf:
        - properties:
            aperioId:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
            connected:
              nullable: true
              type: boolean
            connectionStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            deviceClockSec:
              format: int64
              nullable: true
              type: integer
            deviceTimezone:
              format: int32
              nullable: true
              type: integer
            dtcs:
              items:
                $ref: "#/components/schemas/DtcInfo"
              nullable: true
              type: array
            firmwareVersion:
              nullable: true
              type: string
            hwVersion:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
            ipAddress:
              nullable: true
              type: string
            lastSeenMs:
              format: int64
              nullable: true
              type: integer
            oemCode:
              nullable: true
              type: string
            oemCodeFetchedAtMs:
              format: int64
              nullable: true
              type: integer
            protocolVersionMajor:
              format: int32
              nullable: true
              type: integer
            protocolVersionMinor:
              format: int32
              nullable: true
              type: integer
            protocolVersionPatch:
              format: int32
              nullable: true
              type: integer
            rawTamperState:
              format: int32
              nullable: true
              type: integer
            stateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            transport:
              $ref: "#/components/schemas/TransportEnum"
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    DtcInfo:
      nullable: true
      properties:
        code:
          items:
            format: byte
            nullable: true
            type: string
          nullable: true
          type: array
        failing:
          nullable: true
          type: boolean
        hasFailed:
          nullable: true
          type: boolean
        testCompleted:
          nullable: true
          type: boolean
        time:
          format: int64
          nullable: true
          type: integer
      type: object
    TransportEnum:
      enum:
        - IP
        - RS485
      type: string
    AperioDoorExtensionShadow:
      allOf:
        - properties:
            activatorState:
              format: int32
              nullable: true
              type: integer
            activatorStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            aperioDoorDeviceId:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
            aperioGatewayId:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
            aperioId:
              nullable: true
              type: string
            batteryState:
              $ref: "#/components/schemas/AperioBatteryStateEnum"
            clockRetrievedAtMs:
              format: int64
              nullable: true
              type: integer
            connected:
              nullable: true
              type: boolean
            connectionStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            deviceClockSec:
              format: int64
              nullable: true
              type: integer
            deviceTimezone:
              format: int32
              nullable: true
              type: integer
            doorMode:
              format: int32
              nullable: true
              type: integer
            doorModeUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            dtcs:
              items:
                $ref: "#/components/schemas/DtcInfo"
              nullable: true
              type: array
            dtcsUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            gatewayComponentId:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
            handleState:
              format: int32
              nullable: true
              type: integer
            handleStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            keyCylinderState:
              format: int32
              nullable: true
              type: integer
            keyCylinderStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            lastSeenMs:
              format: int64
              nullable: true
              type: integer
            name:
              nullable: true
              type: string
            removed:
              nullable: true
              type: boolean
            stateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            tamperState:
              format: int32
              nullable: true
              type: integer
            tamperStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    AperioBatteryStateEnum:
      enum:
        - UNKNOWN
        - FLAT
        - LOW
        - OK
      type: string
    SchlageGatewayShadow:
      allOf:
        - properties:
            appConnected:
              nullable: true
              type: boolean
            appConnectedUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            connected:
              nullable: true
              type: boolean
            connectionStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            firmwareVersion:
              nullable: true
              type: string
            hwVersion:
              nullable: true
              type: string
            lastSeenMs:
              format: int64
              nullable: true
              type: integer
            model:
              nullable: true
              type: string
            rawTamperState:
              format: int32
              nullable: true
              type: integer
            serial:
              nullable: true
              type: string
            stateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            tamper:
              nullable: true
              type: boolean
            tamperUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            transport:
              $ref: "#/components/schemas/TransportEnum"
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    SchlageDoorExtensionShadow:
      allOf:
        - properties:
            apmConfig:
              items:
                format: byte
                nullable: true
                type: string
              nullable: true
              type: array
            apmConfigUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            batteryMillivolts:
              format: int32
              nullable: true
              type: integer
            batteryState:
              $ref: "#/components/schemas/SchlageBatteryStateEnum"
            batteryStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            connected:
              nullable: true
              type: boolean
            connectionStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            doorMode:
              format: int32
              nullable: true
              type: integer
            doorModeUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            firmwareVersion:
              nullable: true
              type: string
            gatewayComponentId:
              description: base 64 (url-safe) uuid string
              example: AAAAAAAAAAAAAAAAAAAAAA
              format: RUUID
              nullable: true
              type: string
            interpretedDoorMode:
              $ref: "#/components/schemas/SchlageInterpretedDoorModeEnum"
            keyOverrideState:
              format: int32
              nullable: true
              type: integer
            keyOverrideStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            lastSeenMs:
              format: int64
              nullable: true
              type: integer
            lithiumMillivolts:
              format: int32
              nullable: true
              type: integer
            name:
              nullable: true
              type: string
            productType:
              format: int32
              nullable: true
              type: integer
            serial:
              nullable: true
              type: string
            stateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
            tamperState:
              $ref: "#/components/schemas/SchlageTamperStateEnum"
            tamperStateUpdatedAtMs:
              format: int64
              nullable: true
              type: integer
          type: object
      nullable: true
      properties:
        componentUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        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
        type:
          $ref: "#/components/schemas/ComponentShadowEnumType"
        updatedAtMillis:
          format: int64
          nullable: true
          type: integer
      type: object
    SchlageBatteryStateEnum:
      enum:
        - UNKNOWN
        - OK
        - LOW
        - CRITICAL
      type: string
    SchlageInterpretedDoorModeEnum:
      enum:
        - UNKNOWN
        - ACCESS_CONTROLLED
        - UNLOCKED_HELD
        - SECURED
        - PRIVACY
      type: string
    SchlageTamperStateEnum:
      enum:
        - UNKNOWN
        - NONE
        - READER
        - APM
        - GATEWAY
        - MAGNETIC
      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
````
