openapi: 3.2.0 info: version: 2.0.0 title: Rest-Service Chat Audits 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: chatAudits description: Audits for message chat paths: /chatAudits: get: summary: Show a list of chatAudits operationId: listChatAudits tags: - chatAudits parameters: - name: patient in: query description: The patient ID schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: reader in: query description: The reader ID schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: lastMessage in: query description: The last message ID schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 - name: readAt in: query description: When the message was read schema: type: date-time - $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: Returns a list of chatAudits content: application/json: schema: type: object required: - response - page - size properties: response: type: array minItems: 0 items: $ref: '#/components/schemas/ChatAuditResponse' page: type: integer format: int32 minimum: 1 size: type: integer format: int32 minimum: 0 additionalProperties: false '401': description: Not authenticated '403': description: Access token does not have the required scope default: description: unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' post: summary: Create a chatAudit operationId: chatAuditCreate tags: - chatAudits requestBody: description: Create a chatAudit required: true content: application:json: schema: $ref: '#/components/schemas/ChatAuditRequestCreate' responses: '201': description: Successful creation content: application/json: schema: $ref: '#/components/schemas/ChatAuditResponse' '401': description: Not authenticated '403': description: Access token does not have the required scope /chatAudits/{chatAuditId}: get: summary: Get chat audit by id operationId: chatAuditGet tags: - chatAudits parameters: - name: chatAuditId in: path required: true description: ChatAudit's unique identifier in Luma's database. schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 responses: '200': description: ChatAudit content: application/json: schema: $ref: '#/components/schemas/ChatAuditResponse' '401': description: Not authenticated '403': description: Access token does not have the required scope put: summary: Update a chatAudit operationId: chatAuditUpdate tags: - chatAudits parameters: - name: chatAuditId in: path required: true description: ChatAudit's unique identifier in Luma's database. schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 requestBody: description: A chatAudit (full or partial) to be updated required: true content: application/json: schema: $ref: '#/components/schemas/ChatAuditRequestUpdate' responses: '200': description: ChatAudit content: application/json: schema: $ref: '#/components/schemas/ChatAuditResponse' '401': description: Not authenticated '403': description: Access token does not have the required scope delete: summary: Delete a chatAudit operationId: chatAuditDelete tags: - chatAudits parameters: - name: chatAuditId in: path required: true description: ChatAudit's unique identifier in Luma's database. schema: type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 responses: '200': description: Deleted chatAudit content: application/json: schema: $ref: '#/components/schemas/ChatAuditResponse' '401': description: Not authenticated '403': description: Access token does not have the required scope components: parameters: pageParam: in: query name: page required: false type: integer format: int32 default: 1 minimum: 1 schema: type: integer format: int32 default: 1 minimum: 1 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. 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. 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. 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 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. 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. schemas: 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. ChatAuditRequestCreate: type: object required: - reader - patient properties: reader: description: The message reader ID type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 patient: description: The patient ID type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 lastMessage: description: The last message ID type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 readAt: description: When the message was read type: string format: date-time Error: type: object required: - code - message properties: code: type: integer format: int32 message: type: string ChatAuditResponse: type: object description: A ChatAudit record tracks which messages a given staff user has read within a patient chat, linking a reader, a patient, and the last message read along with the timestamp it was read at. It exists purely to support read receipt and unread message tracking so the product can show staff which patient conversations still need attention. This underpins inbox style unread counts and message triage across the chat feature. required: - _id - name 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' reader: description: The message reader ID type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 patient: description: The patient ID type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 lastMessage: description: The last message ID type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 readAt: description: When the message was read type: string format: date-time 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. 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. 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. 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. ChatAuditRequestUpdate: type: object properties: reader: description: The message reader ID type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 patient: description: The patient ID type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 lastMessage: description: The last message ID type: string pattern: '[0-9a-f]' minLength: 24 maxLength: 24 readAt: description: When the message was read type: string format: date-time securitySchemes: Bearer: type: http scheme: bearer bearerFormat: JWT