openapi: 3.2.0 info: title: Huma Platform Key Actions API version: 1.0.0 description: Huma Platform servers: - url: https://workspace-gcp-uk.api.huma.com/api/integration/v1 description: Base URL declared by the provider in apis.yml (roadmap#122). tags: - name: Key Actions paths: /api/extensions/v1/user/{user_id}/key-action: get: operationId: api_extensions_v1_user_key_action_retrieve_[retrieve_to_do_items_for_user] summary: Retrieve To Do Items For User parameters: - in: query name: allowPastEvents schema: type: boolean - in: query name: moduleConfigIds schema: type: string - in: query name: start schema: type: string format: date-time - in: path name: user_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Key Actions security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/RetrieveToDoItemsResponseDRF' description: '' /api/extensions/v1/user/{user_id}/key-action/{key_action_id}: post: operationId: api_extensions_v1_user_key_action_create_[create_key_action_log] summary: Create Key Action Log parameters: - in: path name: key_action_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: user_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Key Actions requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateKeyActionLogDTORequestBodyDRF' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateKeyActionLogDTORequestBodyDRF' multipart/form-data: schema: $ref: '#/components/schemas/CreateKeyActionLogDTORequestBodyDRF' required: true security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ResultIdResponseObjectDRF' description: '' delete: operationId: api_extensions_v1_user_key_action_destroy_[delete_key_action_log] summary: Delete Key Action Log parameters: - in: path name: id schema: type: string required: true - in: path name: key_action_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true - in: path name: userId schema: type: string required: true - in: path name: user_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Key Actions security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '204': description: No response body /api/extensions/v1/user/{user_id}/key-action/expiring: get: operationId: api_extensions_v1_user_key_action_expiring_retrieve_[retrieve_expiring_key_actions_in_timeframe] summary: Retrieve Expiring Key Actions In Timeframe parameters: - in: query name: end schema: type: string format: date-time - in: query name: onlyEnabled schema: type: boolean - in: query name: start schema: type: string format: date-time - in: path name: user_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Key Actions security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeyActionResponseDRF' description: '' /api/extensions/v1/user/{user_id}/key-action/forms-timeline: get: operationId: api_extensions_v1_user_key_action_forms_timeline_retrieve_[retrieve_grouped_forms_timeline] summary: Retrieve Grouped Forms Timeline parameters: - in: query name: filledBy schema: type: string required: true - in: query name: startDateTime schema: type: string format: date-time required: true - in: path name: user_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Key Actions security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/FormDataDRF' description: '' /api/extensions/v1/user/{user_id}/key-action/grouped-forms-stats: get: operationId: api_extensions_v1_user_key_action_grouped_forms_stats_retrieve_[retrieve_grouped_forms_stats] summary: Retrieve Grouped Forms Stats parameters: - in: path name: user_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Key Actions security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PeriodProgressResponseDRF' description: '' /api/extensions/v1/user/{user_id}/key-action/timeframe: get: operationId: api_extensions_v1_user_key_action_timeframe_retrieve_[retrieve_to_do_items_in_timeframe] summary: Retrieve To Do Items In Timeframe parameters: - in: query name: allowPastEvents schema: type: boolean - in: query name: end schema: type: string format: date-time required: true - in: query name: start schema: type: string format: date-time - in: path name: user_id schema: type: string pattern: ^[a-f0-9]{24}$ required: true tags: - Key Actions security: - JWT Auth: [] - Hawk Auth: [] - jwtAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/RetrieveToDoItemsResponseDRF' description: '' components: schemas: QuestionnaireDTODRF: type: object properties: id: type: string userId: type: string moduleId: type: string moduleConfigId: type: string moduleResultId: type: string deploymentId: type: string version: type: integer deviceName: type: string isAggregated: type: boolean startDateTime: type: string format: date-time endDateTime: type: string format: date-time createDateTime: type: string format: date-time submitterId: type: string correlationStartDateTime: type: string format: date-time client: $ref: '#/components/schemas/UserAgentDRF' server: $ref: '#/components/schemas/ServerDRF' ragThreshold: type: object additionalProperties: {} flags: type: object additionalProperties: {} eventLogId: type: string device: $ref: '#/components/schemas/DeviceDetailsDRF' source: type: string isAverage: type: boolean noteId: type: string feedback: $ref: '#/components/schemas/ModuleFeedbackDRF' meal: type: string userNote: type: string answers: type: array items: $ref: '#/components/schemas/QuestionnaireAnswerDRF' appResult: $ref: '#/components/schemas/QuestionnaireAppResultDRF' isForManager: type: boolean questionnaireId: type: string questionnaireName: type: string value: type: number format: double skipped: type: array items: $ref: '#/components/schemas/QuestionnaireAnswerDRF' updateDateTime: type: string format: date-time signOffDateTime: type: string format: date-time status: type: string revision: type: integer required: - answers - deploymentId - deviceName - moduleId - questionnaireId - questionnaireName - userId FeedbackNotificationDataDRF: type: object properties: title: type: string body: type: string offline: type: boolean LocalizableFields: type: array items: type: string title: ' localizablefields' order: type: integer ResultIdResponseObjectDRF: type: object properties: id: type: string ServerDRF: type: object properties: hostUrl: type: string server: type: string api: type: string required: - api - hostUrl - server PeriodProgressResponseDRF: type: object properties: taskCompliance: type: number format: double startDateTime: type: string format: date-time openQueriesAmount: type: integer passedDueDateFormsAmount: type: integer RetrieveToDoItemsResponseDRF: type: object properties: id: type: string userId: type: string title: type: string description: type: string model: type: string isRecurring: type: boolean instanceExpiresIn: type: string startDateTime: type: string endDateTime: type: string enabled: type: boolean parentId: type: string hasCustomSchedule: type: boolean isSilent: type: boolean updateDateTime: type: string createDateTime: type: string completeDateTime: type: string appointmentDateTime: type: string format: date-time appointmentStatus: type: string appointmentId: type: string keyActionConfigId: type: string learnArticleId: type: string moduleId: type: string moduleConfigId: type: string deploymentId: type: string required: - keyActionConfigId - model QuestionnaireAppResultDRF: type: object properties: appType: type: string values: type: array items: $ref: '#/components/schemas/QuestionnaireAppResultValueDRF' required: - appType - values FeedbackTextDRF: type: object properties: id: type: string text: type: string order: type: integer required: - id - text QuestionnaireAnswerDRF: type: object properties: id: type: string answerText: type: string answersList: type: array items: type: string filesList: type: array items: $ref: '#/components/schemas/QuestionnaireAnswerMediaFileDRF' otherText: type: string value: type: string compositeAnswer: type: object additionalProperties: {} answerScore: type: integer questionId: type: string question: type: string format: type: string choices: type: array items: type: string selectedChoices: type: array items: type: string otherSelectedChoices: type: array items: type: string selectionCriteria: type: string lowerBound: type: number format: double upperBound: type: number format: double lists: type: array items: type: string units: type: array items: type: string selectedUnit: type: string recalledText: type: array items: type: string options: type: array items: type: object additionalProperties: {} required: - question UserAgentDRF: type: object properties: product: type: string version: type: string softwareName: type: string softwareVersion: type: string bundleId: type: string build: type: string hardware: type: string component: type: string language: type: string clientType: type: string required: - product - softwareName - softwareVersion - version ModuleFeedbackDRF: type: object properties: criteria: type: object additionalProperties: {} text: $ref: '#/components/schemas/FeedbackTextDRF' moduleData: type: object additionalProperties: {} language: type: string notificationData: $ref: '#/components/schemas/FeedbackNotificationDataDRF' QuestionnaireAnswerMediaFileDRF: type: object properties: file: type: string thumbnail: type: string mediaType: type: string required: - file - mediaType QuestionnaireAppResultValueDRF: type: object properties: label: type: string valueType: type: string valueFloat: type: number format: double required: - label - valueFloat - valueType CreateKeyActionLogDTORequestBodyDRF: type: object properties: model: type: string userId: type: string startDateTime: type: string format: date-time endDateTime: type: string format: date-time completeDateTime: type: string format: date-time required: - endDateTime - model - startDateTime KeyActionResponseDRF: type: object properties: id: type: string userId: type: string title: type: string description: type: string model: type: string isRecurring: type: boolean instanceExpiresIn: type: string startDateTime: type: string endDateTime: type: string enabled: type: boolean parentId: type: string hasCustomSchedule: type: boolean isSilent: type: boolean updateDateTime: type: string createDateTime: type: string completeDateTime: type: string keyActionConfigId: type: string learnArticleId: type: string moduleId: type: string moduleConfigId: type: string deploymentId: type: string required: - keyActionConfigId - model FormDataDRF: type: object properties: id: type: string userId: type: string title: type: string description: type: string model: type: string isRecurring: type: boolean instanceExpiresIn: type: string startDateTime: type: string endDateTime: type: string format: date-time enabled: type: boolean parentId: type: string hasCustomSchedule: type: boolean isSilent: type: boolean updateDateTime: type: string createDateTime: type: string completeDateTime: type: string keyActionConfigId: type: string learnArticleId: type: string moduleId: type: string moduleConfigId: type: string deploymentId: type: string result: $ref: '#/components/schemas/QuestionnaireDTODRF' status: type: string required: - keyActionConfigId - model DeviceDetailsDRF: type: object properties: uuid: type: string serialNumber: type: string modelName: type: string manufacturer: type: string required: - manufacturer - modelName - uuid securitySchemes: Hawk_Auth: type: apiKey in: header name: Authorization description: 'Hawk MAC authentication. Paste a full Authorization header value. Example: Authorization: Hawk id="userId:clientId", ts="", nonce="", mac=""[, hash=""][, ext=""] Note: Swagger UI cannot generate Hawk headers. Use your client to compute the MAC (e.g., with mohawk), then paste the full value here.' JWT_Auth: type: http scheme: bearer in: header bearerFormat: JWT description: 'Use HTTP Bearer auth with a JWT. Send the token in the Authorization header: Authorization: Bearer The token should contain standard claims plus projectId and clientId in user claims.' jwtAuth: type: http scheme: bearer bearerFormat: JWT