Blues device API

Device operations

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

blues-wireless-device-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  contact:
    email: engineering@blues.io
    name: Blues Engineering
    url: https://dev.blues.io/support/
  description: 'The OpenAPI definition for the Notehub.io API.

    '
  title: Notehub alert device API
  version: 1.2.0
servers:
- description: Production server
  url: https://api.notefile.net
tags:
- description: Device operations
  name: device
paths:
  /v1/products/{productUID}/devices/{deviceUID}/environment_variables_with_pin:
    parameters:
    - $ref: '#/components/parameters/productUIDParam'
    - $ref: '#/components/parameters/deviceUIDParam'
    - $ref: '#/components/parameters/XAuthTokenHeader'
    get:
      operationId: GetDeviceEnvironmentVariablesByPin
      description: Get environment variables of a device with device pin authorization
      responses:
        '200':
          $ref: '#/components/responses/GetDeviceEnvironmentVariablesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
    put:
      operationId: SetDeviceEnvironmentVariablesByPin
      description: Set environment variables of a device with device pin authorization
      requestBody:
        description: Environment variables to be added to the device
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentVariables'
      responses:
        '200':
          $ref: '#/components/responses/EnvironmentVariablesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: update
  /v1/projects/{projectOrProductUID}/devices:
    get:
      operationId: GetDevices
      description: Get Devices of a Project
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/pageNumParam'
      - $ref: '#/components/parameters/deviceUIDParamQuery'
      - $ref: '#/components/parameters/tagParam'
      - $ref: '#/components/parameters/serialNumberParam'
      - $ref: '#/components/parameters/fleetUIDsQueryParam'
      - $ref: '#/components/parameters/notecardFirmwareParam'
      - $ref: '#/components/parameters/locationParam'
      - $ref: '#/components/parameters/hostFirmwareParam'
      - $ref: '#/components/parameters/productUIDQueryParam'
      - $ref: '#/components/parameters/skuParam'
      responses:
        '200':
          $ref: '#/components/responses/DevicesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}:
    parameters:
    - $ref: '#/components/parameters/projectOrProductUIDParam'
    - $ref: '#/components/parameters/deviceUIDParam'
    delete:
      operationId: DeleteDevice
      description: Delete Device
      responses:
        '204':
          description: Successful operation
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: delete
        resource: blues:resources:app:APPSERIAL:devices
    get:
      operationId: GetDevice
      description: Get Device
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/disable:
    post:
      operationId: DisableDevice
      description: Disable Device
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      responses:
        '200':
          description: Successful operation
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: update
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/enable:
    post:
      operationId: EnableDevice
      description: Enable Device
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      responses:
        '200':
          description: Successful operation
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: update
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/environment_hierarchy:
    get:
      operationId: GetDeviceEnvironmentHierarchy
      summary: Get environment variable hierarchy for a device
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      responses:
        '200':
          description: Successfully retrieved device environment hierarchy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvTreeJsonNode'
        '404':
          description: Project or device not found
        '500':
          description: Server error
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/environment_variables:
    parameters:
    - $ref: '#/components/parameters/projectOrProductUIDParam'
    - $ref: '#/components/parameters/deviceUIDParam'
    get:
      operationId: GetDeviceEnvironmentVariables
      description: Get environment variables of a device
      responses:
        '200':
          $ref: '#/components/responses/GetDeviceEnvironmentVariablesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
    put:
      operationId: SetDeviceEnvironmentVariables
      description: Set environment variables of a device
      requestBody:
        description: Environment variables to be added to the device
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentVariables'
      responses:
        '200':
          $ref: '#/components/responses/EnvironmentVariablesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: update
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/environment_variables/{key}:
    delete:
      operationId: DeleteDeviceEnvironmentVariable
      description: Delete environment variable of a device
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - name: key
        in: path
        description: The environment variable key to delete.
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/EnvironmentVariablesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: delete
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/files:
    delete:
      operationId: DeleteNotefiles
      description: Deletes Notefiles and the Notes they contain.
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                files:
                  description: Name of notefiles to delete
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: An empty object means success
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: delete
        resource: blues:resources:app:APPSERIAL:notefiles
    get:
      operationId: ListNotefiles
      description: Lists .qi and .db files for the device
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - name: files
        in: query
        description: One or more files to obtain change information from.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: pending
        in: query
        description: show only files that are pending sync to the Notecard
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: All notefiles and their notes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotefileList'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:notefiles
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/health-log:
    get:
      operationId: GetDeviceHealthLog
      description: Get Device Health Log
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - $ref: '#/components/parameters/startDateParam'
      - $ref: '#/components/parameters/endDateParam'
      - name: log_type
        in: query
        description: Return only specified log types
        required: false
        schema:
          type: array
          items:
            enum:
            - boot
            - dfu_completed
            type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  health_log:
                    type: array
                    items:
                      properties:
                        alert:
                          type: boolean
                        text:
                          type: string
                        when:
                          type: string
                          format: date-time
                      required:
                      - when
                      - alert
                      - text
                      type: object
                required:
                - health_log
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/journeys:
    get:
      operationId: GetDeviceJourneys
      description: 'Get the list of journeys for a device, derived from `_track.qo` events. Returns journey metadata only (no event payloads). Capped at 100 most recent journeys; `has_more` is true when the cap is hit.

        '
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - $ref: '#/components/parameters/startDateParam'
      - $ref: '#/components/parameters/endDateParam'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  has_more:
                    type: boolean
                  journeys:
                    type: array
                    items:
                      properties:
                        end_date:
                          description: Latest event time within the journey.
                          type: string
                          format: date-time
                        journey_id:
                          description: 'Identifier of the journey, taken from the `journey` field on `_track.qo` events. This value is itself a Unix timestamp marking the start of the journey.

                            '
                          type: integer
                          format: int64
                        start_date:
                          description: Earliest event time within the journey.
                          type: string
                          format: date-time
                        total_events:
                          description: The number of _track.qo events in the journey.
                          type: integer
                          format: int64
                      required:
                      - journey_id
                      - total_events
                      - start_date
                      - end_date
                      type: object
                required:
                - journeys
                - has_more
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/journeys/{journeyID}:
    get:
      operationId: GetDeviceJourney
      description: 'Get a single journey for a device along with its `_track.qo` events. The events array is paginated via `pageSize` / `pageNum`; use `journey.has_more` to detect additional pages.

        '
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - name: journeyID
        in: path
        description: 'Identifier of the journey, taken from the `journey` field on `_track.qo` events (a Unix timestamp marking the start of the journey).

          '
        required: true
        schema:
          type: integer
          format: int64
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/pageNumParam'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  end_date:
                    description: Latest event time within the journey.
                    type: string
                    format: date-time
                  journey:
                    description: Paginated `_track.qo` events for the journey.
                    type: object
                    properties:
                      events:
                        type: array
                        items:
                          $ref: '#/components/schemas/Event'
                      has_more:
                        type: boolean
                    required:
                    - events
                    - has_more
                  journey_id:
                    description: Identifier of the journey.
                    type: integer
                    format: int64
                  start_date:
                    description: Earliest event time within the journey.
                    type: string
                    format: date-time
                required:
                - journey_id
                - start_date
                - end_date
                - journey
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/latest:
    get:
      operationId: GetDeviceLatestEvents
      description: Get Device Latest Events
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      responses:
        '200':
          $ref: '#/components/responses/LatestResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/notefiles/{notefileID}:
    post:
      operationId: CreateNotefile
      description: Creates an empty Notefile on the device.
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - $ref: '#/components/parameters/notefileIDParam'
      responses:
        '200':
          description: An empty object means success
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: create
        resource: blues:resources:app:APPSERIAL:notefiles
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/notes/{notefileID}:
    get:
      operationId: GetNotefile
      description: For .qi files, returns the queued up notes.  For .db files, returns all notes in the notefile
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - $ref: '#/components/parameters/notefileIDParam'
      - name: max
        in: query
        description: The maximum number of Notes to return in the request.
        required: false
        schema:
          type: integer
      - name: deleted
        in: query
        description: true to return deleted notes.
        required: false
        schema:
          type: boolean
      - name: delete
        in: query
        description: true to delete the notes returned by the request.
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: The note changes object
          content:
            application/json:
              schema:
                type: object
                properties:
                  changes:
                    description: The number of pending changes in the Notefile.
                    type: integer
                  notes:
                    description: An object with a key for each note and a value object with the body of each Note and the time the Note was added.
                    type: object
                  total:
                    description: The total number of notes.
                    type: integer
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:notefiles
    post:
      operationId: AddQiNote
      description: Adds a Note to a Notefile, creating the Notefile if it doesn't yet exist.
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - $ref: '#/components/parameters/notefileIDParam'
      requestBody:
        description: Body or payload of note to be added to the device
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NoteInput'
      responses:
        '200':
          description: An empty object means success
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: create
        resource: blues:resources:app:APPSERIAL:notes
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/notes/{notefileID}/{noteID}:
    delete:
      operationId: DeleteNote
      description: Delete a note from a .db or .qi notefile
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - $ref: '#/components/parameters/notefileIDParam'
      - $ref: '#/components/parameters/noteIDParam'
      responses:
        '200':
          description: An empty object means success
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: delete
        resource: blues:resources:app:APPSERIAL:notes
    get:
      operationId: GetDbNote
      description: Get a note from a .db or .qi notefile
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - $ref: '#/components/parameters/notefileIDParam'
      - $ref: '#/components/parameters/noteIDParam'
      - name: delete
        in: query
        description: Whether to delete the note from the DB notefile
        required: false
        schema:
          type: boolean
      - name: deleted
        in: query
        description: Whether to return deleted notes
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: The requested note
          content:
            application/json:
              schema:
                type: object
                properties:
                  body:
                    description: The note body
                    type: object
                  payload:
                    description: The note payload
                    type: string
                  time:
                    description: The time the Note was added to the Notecard or Notehub
                    type: integer
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:notes
    post:
      operationId: AddDbNote
      description: Add a Note to a .db notefile.  if noteID is '-' then payload is ignored and empty notefile is created
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - $ref: '#/components/parameters/notefileIDParam'
      - $ref: '#/components/parameters/noteIDParam'
      requestBody:
        description: Body or payload of note to be added to the device
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NoteInput'
      responses:
        '200':
          description: An empty object means success
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: create
        resource: blues:resources:app:APPSERIAL:notes
    put:
      operationId: UpdateDbNote
      description: Update a note in a .db or .qi notefile
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - $ref: '#/components/parameters/notefileIDParam'
      - $ref: '#/components/parameters/noteIDParam'
      requestBody:
        description: Body or payload of note to be added to the device
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NoteInput'
      responses:
        '200':
          description: An empty object means success
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: update
        resource: blues:resources:app:APPSERIAL:notes
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/plans:
    parameters:
    - $ref: '#/components/parameters/projectOrProductUIDParam'
    - $ref: '#/components/parameters/deviceUIDParam'
    get:
      operationId: GetDevicePlans
      description: Get Data Plans associated with the device, this include the primary sim, any external sim, as well as any satellite connections.
      responses:
        '200':
          $ref: '#/components/responses/DevicePlansResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/provision:
    post:
      operationId: ProvisionDevice
      description: Provision Device for a Project
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      requestBody:
        description: Provision a device to a specific ProductUID
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                device_sn:
                  description: The serial number to assign to the device.
                  type: string
                fleet_uids:
                  description: The fleetUIDs to provision the device to.
                  type: array
                  items:
                    type: string
                  nullable: true
                product_uid:
                  description: The ProductUID that the device should use.
                  type: string
              required:
              - product_uid
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                default: {}
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: create
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/public-key:
    get:
      operationId: GetDevicePublicKey
      description: Get Device Public Key
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  key:
                    type: string
                  uid:
                    type: string
                required:
                - uid
                - key
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/sessions:
    get:
      operationId: GetDeviceSessions
      description: Get Device Sessions
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/pageNumParam'
      - $ref: '#/components/parameters/startDateParam'
      - $ref: '#/components/parameters/endDateParam'
      - $ref: '#/components/parameters/firstSyncParam'
      responses:
        '200':
          $ref: '#/components/responses/SessionResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/{deviceUID}/signal:
    post:
      operationId: SignalDevice
      description: Send a signal from Notehub to a Notecard.
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/deviceUIDParam'
      requestBody:
        description: Body or payload of signal to be sent to the device
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Body'
      responses:
        '200':
          description: A status response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  connected:
                    description: true if the Notecard is connected to Notehub.
                    type: boolean
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: create
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/devices/public-keys:
    get:
      operationId: GetDevicePublicKeys
      description: Get Device Public Keys of a Project
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/pageNumParam'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  device_public_keys:
                    type: array
                    items:
                      properties:
                        key:
                          type: string
                        uid:
                          type: string
                      type: object
                  has_more:
                    type: boolean
                required:
                - device_public_keys
                - has_more
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
      - personalAccessToken: []
      tags:
      - device
      x-custom-attributes:
        permission: read
        resource: blues:resources:app:APPSERIAL:devices
  /v1/projects/{projectOrProductUID}/fleets/{fleetUID}/devices:
    get:
      operationId: GetFleetDevices
      description: Get Devices of a Fleet within a Project
      parameters:
      - $ref: '#/components/parameters/projectOrProductUIDParam'
      - $ref: '#/components/parameters/fleetUIDParam'
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/pageNumParam'
      - $ref: '#/components/parameters/deviceUIDParamQuery'
      - $ref: '#/components/parameters/tagParam'
      - $ref: '#/components/parameters/serialNumberParam'
      - $ref: '#/components/parameters/notecardFirmwareParam'
      - $ref: '#/components/parameters/locationParam'
      - $ref: '#/components/parameters/hostFirmwareParam'
      - $ref: '#/components/parameters/productUIDQueryParam'
 

# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/blues-wireless/refs/heads/main/openapi/blues-wireless-device-api-openapi.yml