openapi: 3.2.0 info: version: 2.0.0 title: Rest-Service Reports 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: reports description: Luma Analytical Reports paths: /reports: get: summary: List reports operationId: reportsList tags: - reports parameters: - name: type in: query schema: type: string - name: enabled in: query schema: type: boolean - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/limitParam' responses: '200': description: List of reports content: application/json: schema: type: object required: - response - page - size properties: response: type: array minItems: 0 items: $ref: '#/components/schemas/ReportResponse' 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 post: summary: Create a report operationId: reportCreate tags: - reports requestBody: description: Report to create required: true content: application/json: schema: $ref: '#/components/schemas/ReportRequestCreate' responses: '201': description: Successful creation content: application/json: schema: $ref: '#/components/schemas/ReportResponse' '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' /reports/{reportId}: get: summary: Get report by id operationId: reportGet tags: - reports parameters: - name: reportId in: path required: true schema: type: string format: uuid responses: '200': description: Report content: application/json: schema: $ref: '#/components/schemas/ReportResponse' '401': description: Not authenticated '403': description: Access token does not have the required scope put: summary: Update a report operationId: reportUpdate tags: - reports parameters: - name: reportId in: path required: true schema: type: string format: uuid requestBody: description: A report (full or partial) to be updated required: true content: application/json: schema: $ref: '#/components/schemas/ReportRequestUpdate' responses: '200': description: Report updated content: application/json: schema: $ref: '#/components/schemas/ReportResponse' '401': description: Not authenticated '403': description: Access token does not have the required scope delete: summary: Delete a report operationId: reportDelete tags: - reports parameters: - name: reportId in: path required: true schema: type: string format: uuid responses: '200': description: Deleted report content: application/json: schema: $ref: '#/components/schemas/ReportResponse' '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 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 schemas: ReportRequestUpdate: type: object properties: _id: type: string format: uuid name: type: string description: type: string enabled: type: boolean type: type: string ReportResponse: type: object description: Represents a configured analytics report or dashboard, backed by Looker or Sigma, that staff can view within Luma Health. It stores the report name, description, external dashboard reference, and whether it is a custom, featured, or legacy report type. properties: _id: type: string format: uuid name: type: string description: type: string enabled: type: boolean type: type: string Error: type: object required: - code - message properties: code: type: integer format: int32 message: type: string ReportRequestCreate: type: object required: - _id - name - description - enabled - type properties: _id: type: string format: uuid name: type: string description: type: string enabled: type: boolean type: type: string securitySchemes: Bearer: type: http scheme: bearer bearerFormat: JWT