openapi: 3.2.0 info: version: 2.0.0 title: Rest-Service Broadcast Events API x-logo: url: https://lumahealth-assets.s3.us-west-2.amazonaws.com/new_luma_logo_black.png backgroundColor: '#FFFFFF' altText: Luma Health description: OpenAPI [Basic Structure](https://swagger.io/docs/specification/basic-structure/) servers: - url: https://api.lumahealth.io/api/v2 security: - Bearer: [] tags: - name: broadcastEvents description: Broadcast event logs and history paths: /broadcastEvents: get: summary: List broadcast events operationId: broadcastEventsList tags: - broadcastEvents parameters: - $ref: '#/components/parameters/userParam' - $ref: '#/components/parameters/deletedParam' - $ref: '#/components/parameters/createdByParam' - $ref: '#/components/parameters/updatedByParam' - $ref: '#/components/parameters/createdAtParam' - $ref: '#/components/parameters/updatedAtParam' - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/populateParam' - $ref: '#/components/parameters/selectParam' responses: '200': description: A list of broadcast events content: application/json: schema: type: object required: - response - page - size properties: response: type: array items: $ref: '#/components/schemas/BroadcastEvent' page: type: integer format: int32 minimum: 1 size: type: integer format: int32 minimum: 0 additionalProperties: false '401': description: Not authenticated '403': description: Not authorized '404': description: Not found '500': description: Internal server error post: summary: Create broadcast event operationId: broadcastEventsCreate tags: - broadcastEvents requestBody: description: The broadcast event to create required: true content: application/json: schema: $ref: '#/components/schemas/BroadcastEvent' responses: '201': description: The broadcast event was created successfully '401': description: Not authenticated '403': description: Not authorized '404': description: Not found '500': description: Internal server error /broadcastEvents/{broadcastEventId}: get: summary: Get broadcast event by ID operationId: broadcastEventsGet tags: - broadcastEvents parameters: - name: broadcastEventId in: path required: true schema: type: string description: ID of the broadcast event to retrieve - $ref: '#/components/parameters/populateParam' - $ref: '#/components/parameters/selectParam' responses: '200': description: The broadcast event was retrieved successfully content: application/json: schema: $ref: '#/components/schemas/BroadcastEvent' '401': description: Not authenticated '403': description: Not authorized '404': description: Not found '500': description: Internal server error put: summary: Update broadcast event operationId: broadcastEventsUpdate tags: - broadcastEvents parameters: - name: broadcastEventId in: path required: true schema: type: string description: ID of the broadcast event to update requestBody: description: The broadcast event to update required: true content: application/json: schema: $ref: '#/components/schemas/BroadcastEvent' responses: '200': description: The broadcast event was updated successfully content: application/json: schema: $ref: '#/components/schemas/BroadcastEvent' '401': description: Not authenticated '403': description: Not authorized '404': description: Not found '500': description: Internal server error components: schemas: createdAtParam: in: query name: createdAt type: string format: date-time schema: type: string format: date-time required: false description: The date/time when this object was created. updatedByParam: in: query name: updatedBy required: false type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 description: The ID of the user who updated this object. createdByParam: in: query name: createdBy type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 required: false description: The ID of the user who created this object. userParam: in: query name: user required: false type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 description: The ID of the root account user. deletedParam: in: query name: deleted required: false type: number enum: - 0 - 1 schema: type: number enum: - 0 - 1 description: Flag for logical deletion where 1 means deleted. BroadcastEvent: type: object description: A BroadcastEvent records a single unit of work within a Luma broadcast flow, a bulk outbound messaging campaign sent to many patients at once (for example a recall or announcement uploaded as a spreadsheet). Each event tracks either a review action taken on the flow or the processing of one row or patient, including its current step (message queued, sent, failed, or skipped), any error encountered, and links to the associated patient and appointment. properties: _id: $ref: '#/components/schemas/idParam' user: $ref: '#/components/schemas/userParam' deleted: $ref: '#/components/schemas/deletedParam' createdBy: $ref: '#/components/schemas/createdByParam' updatedBy: $ref: '#/components/schemas/updatedByParam' createdAt: $ref: '#/components/schemas/createdAtParam' updatedAt: $ref: '#/components/schemas/updatedAtParam' broadcastFlow: $ref: '#/components/schemas/idParam' required: true patient: $ref: '#/components/schemas/idParam' statuses: type: array items: type: object properties: step: type: string required: true enum: - RowProcess - MessageProcess status: type: string required: true enum: - in-progress - success - failure - skipped stepCreatedAt: type: string format: date-time required: true stepUpdatedAt: type: string format: date-time required: true patient: $ref: '#/components/schemas/idParam' retryCount: type: integer row: type: integer rowRecord: type: object additionalProperties: type: string idParam: in: query name: _id type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 required: false schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 description: Luma's internal ID of an object. updatedAtParam: in: query name: updatedAt type: string format: date-time schema: type: string format: date-time required: false description: The date/time when this object was updated. parameters: populateParam: name: _populate in: query description: Response properties which will be replaced by the referenced objects, separated by commas. required: false type: string schema: type: string selectParam: name: _select in: query description: Response properties that should be returned, separated by commas. required: false type: string schema: type: string pageParam: in: query name: page required: false type: integer format: int32 default: 1 minimum: 1 schema: type: integer format: int32 default: 1 minimum: 1 updatedByParam: in: query name: updatedBy required: false type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 description: The ID of the user who updated this object. deletedParam: in: query name: deleted required: false type: number enum: - 0 - 1 schema: type: number enum: - 0 - 1 description: Flag for logical deletion where 1 means deleted. updatedAtParam: in: query name: updatedAt type: string format: date-time schema: type: string format: date-time required: false description: The date/time when this object was updated. createdByParam: in: query name: createdBy type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 required: false description: The ID of the user who created this object. createdAtParam: in: query name: createdAt type: string format: date-time schema: type: string format: date-time required: false description: The date/time when this object was created. limitParam: name: limit in: query description: How many items to fetch per page required: false type: integer format: int32 default: 500 minimum: 1 maximum: 1000 schema: type: integer format: int32 default: 500 minimum: 1 maximum: 1000 userParam: in: query name: user required: false type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 description: The ID of the root account user. securitySchemes: Bearer: type: http scheme: bearer bearerFormat: JWT